Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring integration 一个spring kafka消费者可以为同一个groip在多台机器上运行吗?_Spring Integration_Apache Kafka - Fatal编程技术网

Spring integration 一个spring kafka消费者可以为同一个groip在多台机器上运行吗?

Spring integration 一个spring kafka消费者可以为同一个groip在多台机器上运行吗?,spring-integration,apache-kafka,Spring Integration,Apache Kafka,Kafka说,偏移量由使用者管理,同一个组应该有尽可能多的使用者和分区。 Spring integration表示高级消费者中消费者流的数量是同一组的分区数量。 那么,spring kafka消费代码能否在同一组的多台服务器上运行?如果是,如何知道偏移量在服务器之间不存在冲突?根据卡夫卡文档,如果实施了组(),则组中只有一个消费者使用每条消息。每个消费者可以在一台机器上运行。两个用户也可以在同一台机器上运行。在这种情况下,每个使用者可以是一个进程 一个组可以包含多个使用者。分区可以通过一些算法分

Kafka说,偏移量由使用者管理,同一个组应该有尽可能多的使用者和分区。
Spring integration表示高级消费者中消费者流的数量是同一组的分区数量。

那么,spring kafka消费代码能否在同一组的多台服务器上运行?如果是,如何知道偏移量在服务器之间不存在冲突?

根据卡夫卡文档,如果实施了(),则组中只有一个消费者使用每条消息。每个消费者可以在一台机器上运行。两个用户也可以在同一台机器上运行。在这种情况下,每个使用者可以是一个进程

一个组可以包含多个使用者。分区可以通过一些算法分布在一个组中的所有使用者之间。使用者的数量可以大于或小于分区的数量

偏移量可以通过zookeeper进行管理。但到目前为止,并非所有功能都已在某些客户端中实现

至于您的用例,事实上,kafka可能“至少一次交付系统”。在处理一批消息之前,通过禁用生产者的重试或提交其偏移量,Kafka最多可以进行一次传递。实施“一次准确交付系统”非常困难,这需要合作。但卡夫卡提供了补偿。因此,这是可能的。有关更多详细信息,请参阅,等等


根据我的个人经验,我花了很多时间来确保我的卡夫卡系统完全是一次性交付系统。但当服务器关闭时,某些消息可能会被消耗两次。但我的测试是在独立的卡夫卡服务器上完成的,生产中总是使用卡夫卡集群。因此,我认为它可以被视为一次系统。

一组中有多个消费者?谢谢您的回答。然而,我想知道我的用例的更多具体细节:在同一个消费者群体中,使用spring集成。我们怎样才能保证偏移量只由zookeper管理,没有重叠呢“消费者用消费者组名称标记自己,发布到某个主题的每条消息都会传递到每个订阅消费者组中的一个消费者实例。使用者实例可以位于单独的进程中,也可以位于单独的计算机上。事实上,卡夫卡可能是“至少一次交付系统”。要实现“完全一次交付系统”是非常困难的。但是试试这个