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…
发表回复