Day35 Kafka复习

截屏2025-01-08 23.40.23.png
  • kafka采用的是pull方式拉取消息.
    topic 异步到consumer 对应一个 consumergroup

topicA消息发送到consumer group0 一一对应
topicB 消息发送到consumer group1
所以可见 topic和consumer group一一对应.

  • 消费者offset
    key是consumergroupId+topic+分区号
    value是offset的值.

  • 消费者rebalance机制

  • kafka好用的工具 kafka-manager

截屏2025-01-08 23.46.52.png

以32G内存的机器为例

xms xmx 最大,最小堆内存,元空间大小
垃圾收集器G1选择
MaxGCPauseTime 最大停顿时间50ms, region大小为16m.

-- 线上问题及其优化
ack=0,ack=1,ack=-1或者all.

  • 消费幂等
    如果配置了重试机制,因为网络问题导致发送端超时,重试机制生效。
    这时候旧的延迟消息会被重新消费。

如果消费端配置的是自动提交,拉取一批数据后,没来得及提交,服务挂了,重启后会拉取一批重复的数据。所以消费端要做幂等。

  • 消息乱序: (顺序消息)
  1. ack 不能为0
  2. 全链路有序,需要将消息发送到同一个topic下的同一个partition分区.

消费端只能有一个,但是可以在消费端起多个线程,队列去消费.

[图片上传失败...(image-9a2824-1736352335600)]

broker下topic相互备份,备份partition. 做数据冗余,同时也提升了性能.

  • 消息挤压:
    有bug大致消息挤压,发送到死信队列。 如果是消息过大,启动临时topic,起多个consumer group消费消息.

  • 幂等
    开始enable.idempotence 即可。 保证重复发送的消息只接收一次

  • 事务
    指的是一次性发送多条消息的事务一致性.


    截屏2025-01-09 00.03.35.png
截屏2025-01-09 00.03.17.png
截屏2025-01-09 00.05.11.png
  • 高性能
    0拷贝,顺序写顺序度,batch操作,压缩处理,文件分区处理

http://note.youdao.com/noteshare?id=1ce32fe44f9326456e98b6e554bf6245&sub=EE921DB4564C46909157C934239C3D22

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容