赞
踩
Kafka中的ACK(Acknowledgement
)机制是用于保证消息可靠传递的关键组件之一。在生产者发送消息到Kafka集群时,ACK机制决定了何时认为消息已经成功发送。这个机制非常重要,因为它影响了生产者对消息发送的信心以及消费者对消息接收的可靠性。
Topic
)中的特定分区(Partition
)。acks=0
:acks=1
:Leader
)接收后收到来自领导者的确认。acks=-1
:Leader
和在ISR
中的所有副本都收到消息后的确认。In-Sync Replicas
):ISR 是指与 Leader
副本保持同步的 Followers
副本集合。Tips:
Leader收到数据,所有Follower都开始同步数据但有一个Follower,因为某种故障,迟迟不能与Leader进行同步,那这个问题怎么解决呢?
数据可靠性总结:
Kafka
中,冥等性确保生产者发送的消息不会因为网络问题、重试或其他原因而导致重复消息的发送。这种特性对于保证消息传递的可靠性至关重要。enable.idempotence=true
来启用冥等性。Kafka的事务机制允许生产者发送一组相关的消息,并确保这组消息要么全部成功提交,要么全部回滚,从而实现消息传递的原子性。
Transaction ID
,并将Producer获得的PID和Transaction ID绑定。Kafka事务具有以下特性:
Atomicity
):事务要么全部成功提交,要么全部回滚,不会出现部分提交的情况。Consistency
):事务在提交前可以确保消息的一致性,即所有消息都符合应用程序的预期状态。Isolation
):事务之间相互隔离,互不影响。Durability
):已经提交的事务保证不会丢失。事务的实现:
Transaction Coordinator
。Transaction Coordinator
交互获得Transaction ID对应的任务状态。Transaction Coordinator
还负责将事务所有写入Kafka的一个内部Topic,这样即使整个服务重启,由于事务状态得到保存,进行中的事务状态可以得到恢复,从而继续进行。与ACK机制的关系:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。