Kafka
1、特点
解耦,冗余,扩展性,灵活性&处理峰值,可恢复性,顺序保证,缓冲,异步通信

2、zookepeer:
管理集群和消费者:保存了集群、topic、消费者的元信息
3、副本:
减小负载,备份,选举leader,不做应答
4、生产者:
写入数据:将消息推入broker,以追加的方式写入分区(顺序写入)
过程:从brokerlist里面获取该分区的leader,将消息发送给leader,有三种应答机制ACK(0:不需要应答 1:leader将消息写入本地log后发送ack(默认) all:follower写完之后通知leader,所有确认之后发送ACK)
5、分区:
直接指定分区
指定key,根据key得到hash进行分区
key为null,通过轮询进行分区
6、kafkautil
createStream:AWL,checkpoint
createDirectStream:自己设置offset存储方式
KafkaMonitor:
运行情况的监控
KafkaManager:
集群的监控
副本设置:2-3个
分区设置:3-10,一般不超过集群个数
丢失数据:
ack:0,发送完消息offset增加,继续生产
ack:1,发送完消息,收到leader副本对一个消息接收的ACK,offset增加,继续生产
ack:-1,发送消息,收到所有分区副本对消息接收的ACK,offset增加,继续生产。
1. leader会维护一个与其基本保持同步的Replica列表,该列表称为ISR(in-sync Replica),每个Partition都会有一个ISR,而且是由leader动态维护
2. 如果一个flower比一个leader落后太多,或者超过一定时间未发起数据复制请求,则leader将其重ISR中移除
3. 当ISR中所有Replica都向Leader发送ACK时,leader才commit
分区:range roundrobin

浙公网安备 33010602011771号