Kafka 消息防丢失怎么设计?

发布于 2022-09-21 08:59:01
关注者
0
被浏览
13
3 个回答
  • 匿名网友
    匿名网友 2022-09-21
    任何消息组件不丢数据都是在特定场景下一定条件的,kafka 要保证消息不丢,有两个核心条件。 第一,必须是已提交的消息,即 committed message。kafka 对于 committed message 的定义是,生产者提交消息到 broker,并等到多个 broker 确认并返回给生产者已提交的确认信息。而这多个 broker 是由我们自己来定义的,可以选择只要有一个 broker 成功保存该消息就算是已提交,也可以是令所有 broker 都成功保存该消息才算是已提交。不论哪种情况,kafka 只对已提交的消息做持久化保证。 第二,也就是最基本的条件,虽然 kafka 集群是分布式的,但也必须保证有足够 broker 正常工作,才能对消息做持久化做保证。也就是说 kafka 不丢消息是有前提条件的,假如你的消息保存在 N 个 kafka broker 上,那么这个前提条件就是这 N 个 broker 中至少有 1 个存活。只要这个条件成立,kafka 就能保证你的这条消息永远不会丢失。
  • 匿名网友
    匿名网友 2022-09-21
    设置ack为\-1
  • 匿名网友
    匿名网友 2022-09-21
    ack=\-1 幂等性 事务
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看