关于kafka:如何才能证明你对kafka了如指掌

10次阅读

共计 900 个字符,预计需要花费 3 分钟才能阅读完成。

1.kafka 根本运行原理及架构

关键词

prducer:生产者
consumer:消费者
consumer group:消费者组

cluster:kafka 集群
broker:kafka 节点
topic:主题
partation:音讯分区(一个 topic 能够为多个 partation 组成)
relica:正本(partation 会有多个正本散布在多个 beoker 上,保障数据不丢)

两种生产模式

点对点模式:音讯不存储,生产胜利立刻删除,一个音讯只能生产一次
公布订阅模式:音讯被生产后不会删除

工作流程

音讯的生产和生产都是面向 topic。topic 是一个逻辑上的概念,其实物理上就是一个或多个 partation,一个 partation 由多个 segment 文件组成,segment 由.log 和.index 文件组成。log 存储数据,kafka 采纳文件开端追加存储的形式。每条数据都有本人的 offset,不便消费者灵便抉择地位生产。index 文件出差农户索引信息。kafka 采纳分片索引机制。

ACK

0:producer 发送音讯后,不期待 ack 间接返回胜利
1: 期待以后 partation 的 leader 落盘胜利返回 ack,不期待 follower
-1(all): 期待所有 partation 落盘胜利返回

2. 绝对于其它音讯队列中间件,kafka 有哪些劣势与劣势?

速度快,并发强。结构设计简略,不便定制扩大。

3. 音讯队列常见问题

反复生产:

借用数据库事务, 新加一张音讯表。用 id 或流水号去重。

音讯失落(音讯可靠性传输)

producer 发送时失落:ack 机制保障(三个级别:0,1,-1)
kafka 本人失落: 同上, 保障落盘, 再发送 ack 应答。
consumer 生产产生谬误失落: 同上, 生产胜利且不报错, 再发送 ack。

程序生产:

producer 保障发送有序
kafka 将须要保障程序的音讯落在同一个队列中
consumer 生产时, 为了保障有序, 只能有一个线程去生产

如幂等音讯,提早生产等等问题,在 kafka 中是如何解决的

参考:https://www.cnblogs.com/jiuju…
https://blog.csdn.net/yuanlon…

正文完
 0