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

如何使用1个分区为Kafka主题创建并发消息侦听器

罗兴运
2023-03-14

uuusing Spring Kafka org . Spring framework . Kafka . listener . concurrentmessagelistenercontainer根据ContainerProperties和主题中的分区数量创建多个侦听器。javadoc说“来自同一个分区的消息将被顺序处理”。因此,如果只有1个分区,并发性设置为10,会发生什么——不会有任何并发性吗?还是会把消息分发给10个听众但是顺序不对?

共有1个答案

谷梁浩思
2023-03-14

不,肯定只有一个目标听众。一个分区——每个消费者组对应一个消费者进程。这是阿帕奇Kafka式的天性。那不是SpringKafka的问题。

最近,您可以使用任务演示器从侦听器方法并行来自该分区的消息。但这已经是你的应用程序了 - 框架不会在这个问题上为你做任何事情。只是因为目标Kafka系统的性质。

 类似资料:
  • null camel-kafka中是否有任何配置,我们可以使用它来增加kafka主题分区计数?

  • 我有几个Samza工作运行所有阅读Kafka主题的消息,并为新主题编写新消息。为了发送新消息,我使用Samza内置的OutgoingMessageEnvelope。并使用MessageCollector发送新消息。它看起来是这样的:

  • 我有一个主题T,它有4个分区TP1、TP2、TP4和TP4。 假设我有8条消息M1到M8。现在当我的制作人将这些消息发送到主题T时,在以下场景下,Kafka经纪人将如何接收它们: 场景1:只有一个kafka broker实例具有前面提到的分区的主题T。 现在假设kafka broker实例1宕机,消费者会作何反应?我假设我的使用者正在读取broker实例1。

  • 我已经使用Spring Kafka创建了一个Kafka消费者,并将其部署在云铸造中。该主题有10个分区。我计划将应用程序扩展到10个实例,以便每个实例可以使用来自一个分区的消息。Spring Kafka支持并发消息侦听器容器,我猜它支持从每个分区创建多个线程来使用。例如,如果我有5个消费者实例,每个消费者实例可能有2个线程从分区消耗。因为我计划为每个分区创建一个应用实例,所以使用并发消费者有什么好

  • 我已经编写了一个streams应用程序,用于在由5个代理和10个分区组成的集群上与主题对话。我在这里尝试了多种组合,比如10个应用程序实例(在10台不同的机器上),每个实例有1个流线程,5个实例每个实例有2个线程。但由于某种原因,当我签入kafka manager时,分区和流线程之间的1:1映射没有发生。一些线程正在拾取2个分区,而一些线程没有拾取任何分区。你能帮我做同样的事吗??所有线程都是同一

  • 我有一个带有4个分区的Kafka主题,因为我有一个带有4个消费者的消费者组。 我的目的是确保消息在分区之间均匀分布。 有没有办法验证kafka主题的跨分区消息分布?