Kafka中如何实现强一致性?

2024-04-12

尝试了解 Kafka 中的一致性维护。请找出场景并帮助理解。

 Number of partition  = 2 
    Replication factor = 3 
    Number of broker in the cluster = 4 

那么,为了实现强一致性,需要有多少个节点承认。任何一个ack = all or ack = 3或任何其他值。请确认是否相同。


您可能有兴趣查看当它绝对、积极、必须存在时 https://kafka-summit.org/sessions/absolutely-positively-reliability-guarantees-kafka-2/卡夫卡峰会的谈话。

这是由 Cloudera 的工程师给出的,并且Cloudera 有自己的关于 Kafka 可用性的文档 https://www.cloudera.com/documentation/kafka/latest/topics/kafka_ha.html

总而言之,超过 1 个副本和高于 1 个同步副本是一个好的开始。然后在生产者上,如果您可以为了数据可用性而牺牲吞吐量,这意味着您必须在继续之前写入所有副本,那么acks=all。否则,如果您相信领导者经纪人具有高可用性,而不干净的领导者选举是错误的,那么acks=1大多数情况下应该没问题。

acks=3顺便说一下,这不是一个有效的配置。我想你正在寻找min.insync.replicas=2 and acks=all复制因子为3;从上面的链接

If min.insync.replicas被设定为2 and acks被设定为all,每条消息必须成功写入至少两个副本。这保证了消息不会丢失,除非两台主机都崩溃

此外,从 Kafka 0.11 开始,您可以启用事务生产者以实现一次性处理

enable.idempotence=true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kafka中如何实现强一致性? 的相关文章

随机推荐