假设我有一个Kafka制作人。
我的消费者首先将消息M1写入Kafka上的主题T1 (通过同步api),然后将消息M2写入主题T2。
此时,消费者正在收听主题T1和T2。每当它看到topic T2上的消息时,它都会查找topic T1上的相关消息。
是否可以保证每当消费者看到主题M2上的消息T2时,都会看到主题T1上的消息M1?(因为在M2之前编写了M1 )
发布于 2017-01-16 21:38:53
关于担保的Kafka文档
https://kafka.apache.org/documentation/#intro_guarantees
高级Kafka的
发布于 2017-01-16 22:07:54
否,不能保证
Kafka消费者不能保证阅读你的主题的最后一条消息,这取决于流量。在高峰情况下,您的消费者完全有可能正在阅读几分钟前关于给定主题的消息,以及另一个主题的最新消息。
此外,这意味着一些严重的调整,以确保您可以正确地分发您的应用程序,关于分区的影响。
使用kafka消费者重新分区的默认行为,您将不能拥有超过一个消费者,从而消除了Kafka的一个重要优势,即水平可伸缩性。
发布于 2017-01-16 21:04:26
不知道你是不是想问你问了什么。
是的,可以保证消费者最终会同时看到M1和M2。
但这是而不是保证的,它将在看到M2之前看到M1 。它完全允许它看到M2,然后才会收到M1,这是任意长时间之后的事。通过任意的长度,我们谈论的是毫秒,当然不是天。
https://stackoverflow.com/questions/41676924
复制相似问题