1初识Kafka
- kafka是一个分布式流式处理平台,优点是高吞吐、可持久化、可水平扩展、支持流数据处理。
- kafka主要有三大功能
- 消息系统:Kafka与传统的消息系统都具备系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能。于此同时kafka还提供了消息顺序性保障和回溯小费的功能。
- 存储系统:kafka把消息持久化到硬盘而不是内存,所以容灾性更强。
- 流式处理平台 :Kafka提供了一个完成的流式处理类库。
1.1 基础概念
kafka有三个组成部分
1. prpdicer(生产者):消息生产的一方之后消息会推送到Kafka中。
2. Consumer(消费者):消息消费的一方。
3. Broker(服务代理节点):消息存放处理的抵挡
工作流程是:生产者生产消息投递到服务代理节点,消费者订阅主题,在对应的服务代理节点进行消息消费。
4. 主题(topic) Kafka中的消息都是以主题为单位归类
5. 分区(partition)kafka中一个主题对应多个分区,一个分区只能对应一个主题。
6. 在分区中以偏移量(offset)为标识来确保分区内的消息顺序,同分区内偏移量唯一,不同分区内偏移量不唯一。
7. kafka中分区引入了多副本机制,会有一个leader副本和多个follower副本,leader副本符合读写数据,follower副本负责同步数据,leader副本和follower副本数据会存在不一致的情况。副本处于不同的(broker)服务代理节点中。kafka通过多副本机制来实现故障的自动转移,所以当broker失效时,仍可以保持服务可用。
8. Kafka消费端也具备一定的容灾能力。消费者在使用pull模式从服务代理节点拉去消息,在并记录消费的位置,当服务宕机重启后,会继续在保存的位置拉取数据。
9. 分区中的所有副本被成为AR
10. 所有的副本包含leader副本组成ISR,ISR是AR的一个子集,消息先同步到leader副本之后给follower副本。
11. 所有与leader副本滞后过多的follower副本组成OSR
12. 所以AR=ISR+OSR
13. AR=ISR的情况下,OSR就是null;
14. 当ISR中的follower副本之后leader副本过多时就会被移除ISR,放入OSR
15. 当OSR中的follower副本追上leader副本时就会移除OSR,放入ISR
16. 只有ISR中的follower副本可以选举成为leader副本。
17. HW时高水位,也是一个特殊的偏移量,消费者只能读取HW之前的数据,HW所在的下标消息对消费者不可以见。