kafka可靠的数据传递--


理论上无论什么组件都会有数据丢失和重复;我们只能从 源头和出口来解决数据的质量。

基本保证

在这里插入图片描述

broker可靠性

  • 副本系数:replication.factor = 3
    • ⼀般设为3,为了更高的安全性,可以设为5,同时考虑副本的分布
  • 不完全的选举:unclean.leader.election.enable = true/false
    • 允许不同步的副本成为首领:可用性和一致性之间权衡
  • 最少同步副本:min.insync.replicas = 2
    • 同步副本小于min.insync.replicas,会阻止生产者继续写入消息 NotEnoughReplicasException

生产者可靠性

  • 发送确认:acks = 0/1/all
    • 0 代表生产者能够通过网络把消息发送出去
    • 1 代表首领副本已经收到消息并把它写入到分区文件
    • ALL 代表所有副本都收到消息
  • 失败重试:retries = 3
    • 可用于解决可重试的错误:如LEADER_NOT_AVAILABLE、网络异常等
  • 额外的异常处理:无法通过自动重试解决的问题
    • 可用于解决不可重试的错误:如消息大小错误、认证错误、序列化错误,或者重试达到上限

消费者可靠性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章