四、Kafka Broker

4.1.1 Zookeeper 存储的 Kafka 信息

4.1.2 Kafka Broker 总体工作流程

4.2 生产经验 - 节点的服役和退役

自己的理解:其实就是将kafka的分区,负载到集群中的各个节点上。

1、服役新节点

2、退役旧节点

4.3 kafka副本

1、副本的作用

2、Leader的选举流程

选举规则:在isr中存活为前提,按照AR中排在前面的优先。例如ar[1,0,2], isr [1,0,2],那么leader就会按照1,0,2的顺序轮询。

3、 Leader 和 Follower 故障处理细节

两个概念:

  • LEO(Log End Offset):每个副本的最后一个offset,LEO其实就是最新的offset + 1
  • HW(High Watermark):所有副本中最小的LEO

4、分区副本分配

5、手动分配分区副本

6、Leader Partition 负载平衡

正常情况下,Kafka本身会自动把Leader Partition均匀分散在各个机器上,来保证每台机器的读写吞吐量都是均匀的。但是如果某些broker宕机,会导致Leader Partition过于集中在其他少部分几台broker上,这会导致少数几台broker的读写请求压力过高,其他宕机的broker重启之后都是follower partition,读写请求很低,造成集群负载不均衡

·最好不要设置集群自动再平衡,因为它浪费集群大量的性能·

7、生产经验------增加副本因子

在生产环境当中,由于某个主题的重要等级需要提升,我们考虑增加副本。副本数的增加需要先制定计划,然后根据计划执行

【注意】不能直接通过命令行的方式修改副本,而是需要通过一下方式来增加副本数量 !

4.4 文件存储

1、文件存储机制

1) Topic 文件的存储机制

3)index 文件和 log 文件详解

2、文件清理策略

  1. Kafka 中默认的日志保存时间为 7 天,可以通过调整如下参数修改保存时间。

  2. Kafka 中提供的日志清理策略有 delete 和 compact 两种

    delete 日志删除:将过期数据删除

compact日志压缩:对于相同key的不同value值,只保留最后一个版本。用的比较少,知道即可

4.5 高效读写数据

1)Kafka 本身是分布式集群,采用分区技术,并行度高

2)读数据采用稀疏索引,可以快速定位要消费的数据

3)顺序写磁盘

4)页缓存 + 零拷贝技术

零拷贝:Kafka的数据加工处理操作交由Kafka生产者和Kafka消费者处理。Kafka Broker应用层不关心存储的数据,所以就不用走应用层,传输效率高

PageCache页缓存:Kafka重度依赖底层操作系统提供的PageCache功 能。当上层有写操作时,操作系统只是将数据写入PageCache。当读操作发生时,先从PageCache中查找,如果找不到,再去磁盘中读取。实际PageCache是把尽可能多的空闲内存都当做了磁盘缓存来使用

相关推荐
纪莫2 小时前
Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发生重平衡(reblanace)
java·分布式·后端·中间件·kafka·队列
poemyang3 小时前
千亿消息“过眼云烟”?Kafka把硬盘当内存用的性能魔法,全靠这一手!
kafka·高并发·pagecache·存储架构·顺序i/o·局部性原理
武子康4 小时前
大数据-75 Kafka 高水位线 HW 与日志末端 LEO 全面解析:副本同步与消费一致性核心
大数据·后端·kafka
齐木卡卡西在敲代码1 天前
kafka的pull的依据
分布式·kafka
超级迅猛龙1 天前
保姆级Debezium抽取SQL Server同步kafka
数据库·hadoop·mysql·sqlserver·kafka·linq·cdc
ejinxian1 天前
MySQL/Kafka数据集成同步,增量同步及全量同步
数据库·mysql·kafka
武子康1 天前
大数据-74 Kafka 核心机制揭秘:副本同步、控制器选举与可靠性保障
大数据·后端·kafka
程序员不迷路1 天前
Kafka学习
分布式·kafka
bing_1581 天前
kafka 生产者是如何发送消息的?
分布式·kafka
纪莫2 天前
Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发送重平衡(reblanace)
kafka