当前位置: 首页 > 知识库问答 >
问题:

Spring Kafka禁用从主题列表中收听

陆阳曜
2023-03-14

我们使用spring kafka配置来接收来自上游系统的消息。我们有用于主题配置的java配置

@Bean(id="firstcontainer")
protected ConcurrentMessageListenerContainer createContainerInstance(...) {
//topics addition
}


@Bean(id="secondcontainer")
protected ConcurrentMessageListenerContainer createContainerInstance(...) {
//topics addition
}


@KafkaListener(firstcontainer)
public void listenerFirst(){

}

@KafkaListener(secondcontainer)
public void listenerSecond(){

}

这段代码工作得非常好,因为我们有单独的容器工厂。现在我们需要启动此应用程序的多个实例,其中一个实例将监听firstContainer,而第二个Container将被禁用

并且对于第二个实例,它只会启用第二个容器并禁用第一个容器。有人能帮助了解是否可以禁用从主题(主题列表)中监听吗?

共有1个答案

何章横
2023-03-14

>

如果您仍然想在应用程序中保留几个bean,那么就有Spring的Profile功能。通过这种方式,您应该将您的KafkaListener方法分为不同的类,并用适当的配置文件标记它们的组件,该配置文件同样可以在外部激活。

Apache Kafka的概念是消费者组,这意味着同一组中的所有消费者都加入到代理中,但只有一个消费者会使用主题中单个分区的记录。这种方式与应用程序实例的数量无关,您仍然可以保持一致性,因为在正确使用Kafka组的情况下,无需担心重复。

 类似资料:
  • 我有一节这样的课 如果我有一个此类对象的列表,如下所示

  • 我有@KafkaListener使用topicPattern与正则表达式,工作正常(foo。*),但现在我想将侦听器分配给所有匹配主题的所有分区。 https://docs.spring.io/spring-kafka/docs/2.6.1/reference/html/#tip-assign-all-parts并没有真正帮助我,因为我不知道主题名称。

  • 我使用的是spring boot 2.2.4版本,spring-kafka 2.4.2版本 我的场景是以下一个: 所以我写了folloqing代码 生产者微服务 spring kafka配置: 在制作人方面所有的工作都很好。我能创造话题和发送信息。 消费者微服务 动态侦听器类 当我在生产者端发送消息时,我可以看到以下日志: 在消费者方面,我没有看到任何信息。我只看到下面的指纹: 谁能告诉我我错在哪

  • 我怎样才能暗示SpringKafka把每一个话题传播给一个不同的消费者呢? 干杯

  • 我认为我发现了一个错误在运行时的Java与JSF 2.0(使用Primeface),在这个项目中我使用JSF 2.0 Primeface和CDI。 恢复问题,我的业务类Role中有一个方法设置器收到了一个List,但JSF正在设置一个ArrayList。java应该抛出异常还是至少不应该找到匹配的方法?这里是: 该方法的输出为: 当我尝试在foreach中使用这样的: 投掷 你能解释一下这是怎么回

  • 我有包含项目数组的类存储。 每个项目(类项目)有不同的体积,我正在添加项目到商店。假设我有20个项目,我把10个添加到2或3个不同的商店,我必须根据这些项目的数量在商店中排序。