我们计划编写一个Kafka消费者(java),它读取Kafka队列以执行消息中的操作。
这取决于组ID。假设您有一个带有12个分区的主题。如果您有两个Kafka消费者具有相同的组Id,那么他们都将读取6个分区,这意味着他们将读取不同的分区集=不同的消息集。如果您有4个Kafka CosNumer具有相同的组Id,那么每个Kafka CosNumer都将读取三个不同的分区,等等。
但当您设置不同的组Id时,情况就会发生变化。如果您有两个Kafka消费者具有不同的组Id,他们将读取所有12个分区,彼此之间没有任何干扰。这意味着两个消费者都将独立阅读完全相同的消息集。如果您有四个Kafka消费者具有不同的组Id,他们都将读取所有分区等。
我有一个Kafka系统,看起来像这样(所有消费者都在一个消费者群体中): 在每个消费者中,我轮询消息,然后进行昂贵的计算(从1到60秒)。如果操作成功,我将提交消费者。 在我提交之前,另一个使用者是否会开始处理相同的消息?我需要保证,一旦消息被拾取,它就会被只执行一次 - 除非处理中途失败。
使用Kafka Simple Consumer可以读取多个分区吗?简单使用者在以下情况下使用分区: https://cwiki.apache.org/confluence/display/KAFKA/0.8.0SimpleConsumer示例
这是一个场景:我知道,使用与Spring kafka相关的最新API(如Spring集成kafka 2.10),我们可以执行以下操作: 以及来自与相同kafka主题相关的不同分区的读取。 我想知道我们是否可以使用同样的方法,例如spsping-集成-Kafka1.3.1 我没有找到任何关于如何做到这一点的提示(我对xml版本很感兴趣)。
我想知道一个使用者如何从多个分区使用消息,具体来说,从不同的分区读取消息的顺序是什么? 我看了一眼源代码(Consumer,Fetcher),但我不能完全理解。 这是我以为会发生的: 分区是顺序读取的。也就是说:在继续下一个分区之前,一个分区中的所有消息都将被读取。如果我们达到< code>max.poll.records而没有消耗整个分区,则下一次读取将继续读取当前分区,直到耗尽为止,然后继续下
在处理Spark结构化流和Kinesis流时,我在重新处理流中积累的数据时遇到了不平衡读取(与读取最新数据相反)。 下一个图表显示了作为流一部分的kinesis片段的读取速度差异。 这使得spark jobs丢弃了很多事件,因为事件时间非常不同的事件会被混淆,而那些认为旧的事件会被丢弃。 最近一位团队成员建议改用Kafka。我对Apache Kafka解决这个问题有点怀疑,因为AFAIK修复我上面
我们希望在读取消息表单kafka时实现并行性。因此我们想在flinkkafkaconsumer中指定分区号。它将从kafka中的所有分区读取消息,而不是特定的分区号。以下是示例代码: 请建议任何更好的选择来获得并行性。