四、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
贺国亚2 天前
Kafka 调优与运维实战
后端·kafka
Devin~Y2 天前
大厂Java面试:Spring Boot + Redis/Kafka + Spring Cloud + JVM + RAG/向量检索(小Y翻车实录)
java·jvm·spring boot·redis·spring cloud·kafka·mybatis
铁皮哥2 天前
【后端开发】RabbitMQ、RocketMQ、Kafka 怎么选?我从业务场景重新梳理了一遍
java·linux·数据库·分布式·kafka·rabbitmq·rocketmq
宇之广曜2 天前
从 MQ 到 Celery:把异步任务、状态表、重试补偿和 Outbox 一次讲清楚
kafka·rabbitmq
苍煜2 天前
Kafka消息零丢失核心全解:生产者acks机制+消费者offset机制
分布式·kafka
敖正炀2 天前
Kafka 安全机制:SASL 认证、SSL 加密与 ACL 授权
kafka
敖正炀3 天前
Kafka 特性全景与选型指南
kafka
乐之者v3 天前
Kafka 跨服数据同步
分布式·kafka
富士康质检员张全蛋3 天前
Kafka 消息查找流程和消息读取流程
分布式·kafka