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

posted @ 2020-04-17 11:03  lucy_cui  阅读(80)  评论(0)    收藏  举报