我能和社区核实一下听多个主题的最佳方式是什么,每个主题都包含不同类的信息吗?
在过去的几天里,我一直在和斯普林Kafka玩。到目前为止我的思考过程:
因为在初始化kafkalistenercontainerfactory时,需要将反序列化程序传递到DefaultKafkanConsumerFactory。这似乎表明,如果我需要多个容器,每个容器都反序列化不同类型的消息,我将无法使用@enablekafka和@kafkalistener注解。
这让我想到,唯一的方法就是示例化多个kafkamessagelistenercontainer。
鉴于kafkamessagelistenercontainers是单线程的,我需要同时听多个主题,我真的应该使用多个concurrentkafkamessagelistenercontainers。
我会在这里的正确轨道上吗?有没有更好的办法?
谢谢!
3条答案
按热度按时间kqhtkvqz1#
我想用下面的代码来应用你的观点
bxjv4tth2#
这是一个非常简单的例子。
xoefb8l83#
您可以使用注解,只需要为每个注解使用不同的侦听器容器工厂。
框架将为每个注解创建一个侦听器容器。
你也可以在一个线程容器上听多个主题,但是它们会在一个线程上被处理。
看看我去年在springone平台上的演讲中的代码——你可能想看看app6,它展示了如何使用
MessageConverter
而不是反序列化程序,这可能有助于简化配置。