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

多分区上的Spring Kafka和轮询策略

龙兴学
2023-03-14

假设我有一个有4个分区的主题。我使用@KafkaListener注释使用spring kafka微服务消费记录。这个微服务是固定的,我有两个实例。然后将每个实例插入两个分区。

我观察到,当我需要赶上延迟时,实例会停留在它所在的分区上,并让第二个分区累积延迟。当我们停止生成消息并且第一个分区上的延迟被完全消耗时,它将只切换到第二个分区。

我的应用程序中的消费顺序只是部分重要。我的意思是,我可以以不同的顺序处理它们,但我不能让消息在分区中停留太久。

简单的解决方案是有四个docker实例,一切都很好。

当KafkaListener插入到多个分区时,sping-kafka中是否有一些属性允许我们更改轮询策略。这个想法是,它将在每次轮询时轮询分配给每个分区的轮询

谢谢你的阅读!

共有1个答案

西门洛城
2023-03-14

您可以将每个实例上的使用者(侦听器容器)并发性设置为2;这样,您将在2个实例中拥有4个使用者。

有了Spring Boot,这就是spring。Kafka。消费者并发性。如果要创建自己的工厂,请直接设置属性。

 类似资料:
  • 使用Kafka作为微服务体系结构中的消息传递系统,我想知道哪一个是首选,是Spring Kafka,还是Spring Integration Kafka,为什么?还有,我们根据什么因素来决定选择哪一个?

  • 我正在使用他们的SQS队列服务为Amazon SES设置反弹、投诉和送货通知。 文档建议在轮询多个SQS队列时,在多个线程上进行轮询。使用长轮询时尤其如此,因为长轮询一个线程上的多个队列可能会导致轮询队列延迟来自不同队列的新消息。 因此,如果我想在我的ASP.NET MVC应用程序中轮询3个SQS队列,我是否应该像下面这样生成裸体线程: 或者是否有更好的方法来实现这一点,因为这是一个长时间运行的进

  • 问题内容: 我正在研究ajax长期轮询,但感到困惑。传统的ajax调用和长时间轮询有什么不同 此示例仅以递归方式调用服务器。与setInterval中的传统调用不同。 问题答案: 顾名思义,“ 长时间轮询” 意味着长时间轮询某些内容。 这是实际过程的开始,您对服务器上的某个脚本进行ajax调用,在本例中为,您需要使服务器脚本(例如)足够智能,以便仅在所需数据可用时才响应请求,该脚本应等待指定的时间

  • 问题内容: 看来在SQL中。我需要能够在严格的等效字符基础上进行区分。 IE 产量 等等.. 我查看了不同的排序规则,以查看是否有一个忽略字符扩展的单词,但到目前为止没有运气。 数据库具有默认设置- 我也尝试过和,但这两个都不起作用。 任何帮助,将不胜感激。 问题答案: 您需要使用二进制排序规则,以便区分大小写,区分重音等。 排序规则:

  • 本文向大家介绍I/O多路复用轮询技术select和epoll的区别是什么?相关面试题,主要包含被问及I/O多路复用轮询技术select和epoll的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 select: 它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。同时处理的流越多