繁体   English   中英

Apache Kafka和消息传递保证

[英]Apache Kafka and message delivery assurance

我正在考虑将Apache Kafka用作许多订阅者的分布式消息发布者。 它非常适合我,因为解决方案必须易于扩展。

Kafka的文档声明可以确认消息,从而确保消息传递。 但是,今天我遇到了这篇文章 ,其中指出有些情况可能会丢失消息。 再说一遍,这篇文章只在Google缓存中提供,所以我不知道它是否值得信赖......

所以我有一个疑问 - 是否有任何时刻,任何场景,消息将丢失? 换句话说 - 我的主要要求是每条消息必须到达目的地。 可以通过使用Apache Kafka来满足吗? 这是这项工作的正确工具吗?

您正在寻找的文章的原文如下: http//engineering.onlive.com/2013/12/12/didnt-use-kafka/

如果您阅读完整的文章和评论,您将看到很多关注的问题不是保证至少一次交付,而是由客户交付并成功处理。 关于这篇文章的最后几条评论,包括原作者,似乎表明他对这种方法感到满意。

您可能还会发现这篇感兴趣的文章 - 类似的问题:

https://www.mail-archive.com/users%40kafka.apache.org/msg04492.html

并从一些文档:

因此,有效地Kafka保证默认情况下至少一次交付,并且允许用户通过禁用生产者的重试并在处理一批消息之前提交其偏移量来最多实施一次交付。 完全一次交付需要与目标存储系统合作,但Kafka提供了偏移,这使得实现这一直接。

我见过的大多数谈话都不是关于至少一次的保证,而是关于如何从那里到最多一次或完全一次。

卡夫卡确实声称
对于具有复制因子N的主题,我们将容忍最多N-1个服务器故障,而不会丢失任何提交给日志的消息。

可能值得阅读其文档页面中编写的Message Delivery Semantics以便更好地理解

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM