Java 主题中的两个实例
我已经部署了一个应用程序的两个实例。这两个应用程序运行相同的代码,使用相同的主题Java 主题中的两个实例,java,apache-kafka,Java,Apache Kafka,我已经部署了一个应用程序的两个实例。这两个应用程序运行相同的代码,使用相同的主题 @KafkaListener( offsetReset = OffsetReset.EARLIEST, offsetStrategy = OffsetStrategy.DISABLED ) public class AppConsumer implements ConsumerRebalanceListener, KafkaConsumerAware { @Topic("topic")
@KafkaListener( offsetReset = OffsetReset.EARLIEST, offsetStrategy = OffsetStrategy.DISABLED )
public class AppConsumer implements ConsumerRebalanceListener, KafkaConsumerAware {
@Topic("topic")
public void consumeAppInfo(@KafkaKey String name, @Body @Nullable String someString) {
...
}
}
我有一个问题,其中只有一个应用程序使用消息。该主题只有一个分区,分区0
,我认为这是默认分区
我尝试将组id和线程添加到KafkaListener。这似乎有时有效,有时无效
@KafkaListener(groupId="myGroup", threads=10)
让两个应用程序使用同一条消息的最简单解决方案是什么?在kafka中,每个分区只分配消费者组中的一个消费者。如果要由不同的应用程序使用来自同一分区的数据,则需要为每个不同的应用程序/实例指定不同的使用者组。在kafka中,使用者组中只有一个使用者分配给每个分区。如果要通过不同的应用程序使用来自同一分区的数据,则需要为每个不同的应用程序/实例指定不同的使用者组。您不能进行分组,而只需为每个应用程序提供一个单独的使用者id。每个使用者使用所有消息(除非它们也被分配到一个组) 组用于并行处理消息组中的每个使用者被分配到一个分区以处理消息
更多信息=>您不能进行分组,而只需为每个应用程序提供一个单独的使用者id。每个使用者使用所有消息(除非它们也被分配到一个组) 组用于并行处理消息组中的每个使用者被分配到一个分区以处理消息
更多信息=>在每个应用程序中使用不同的组id。在每个应用程序中使用不同的组id。