kafka-01/生产者-保证消息可靠性
2024-08-24 10:52:25 0 举报
"kafka-01/生产者-保证消息可靠性"这部分内容主要介绍了Kafka生产者如何确保消息传输的可靠性。在Kafka中,生产者负责创建消息并将其发送到指定的主题。为了保证消息的可靠性,生产者需要使用一些策略来确保消息成功交付。这些策略包括使用acks配置来确保消息被成功提交到Kafka集群,以及使用重试机制来处理那些在传输过程中可能出现的错误。此外,生产者还需要处理消息的乱序和重复问题,以确保消息在传输过程中的顺序性。这部分内容对于理解和实现Kafka生产者的可靠性传输具有重要意义。
作者其他创作
大纲/内容
ISR都同步了,生产者才算发送消息成功
kafka-broker(JVM APP)fd = 5
消息
定期flush到磁盘
msg2
消息发送到leader(落盘),消息就算发送成功,这时就算leader挂掉,follower被选举为leader了,刚发到leader的消息还没有同步过来呢(丢消息了),(这种模式下吞吐量较高,一致性较低)
105.121.75.78
assigned replics,所有的broker
kafka(follower)
消息发送到leader(落盘),且同步到ISR节点后,消息才算发送成功,这时就算leader挂掉,follower被选举为leader了,消息仍是全量的,不会存在消息丢失的情况(这种模式下吞吐量最低,一致性最高)
kernel
ISR
消费者 APPnew Kafka(105.121.75.78:9092)
1(默认值)
LogEndOffset
什么时候算发送成功?根据ACK的值而定
msg3
msg1
ACK = -1
消费者
先写到pagecache中
网卡
直接到磁盘
同步
磁盘
offset索引
timestamp索引
内存
命中
LEO = 4,给leader了4条消息HW = 3,集群间同步了3条
msg4
OSR
pagecache
分区可靠性
生产者
-1
kafka(leader)
未命中
通过内核找到进程应用
生产者 APPnew Kafka(105.121.75.78:9092)
LEO
Height Watermark
broker写入磁盘了,生产者才算消息发送成功了
192.168.1.10
ACK模式
AR
HW,最高的水位
out sync replics,过阈值没心跳的
强一致性
生产者发出了消息就认为消息发送成功了
192.168.1.12
sendfile的数据 要么从pagecache来(pagecache命中) 要么从磁盘来(pagecache未命中)
0
消息发送成功后,消费者就可以去消费消息了
最终一致性(过半、ISR)
先到pagecache,再到磁盘
ACK = 1
in sync replics,连通的&活跃的
收藏
0 条评论
回复 删除
下一页