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

限制每个主题使用的消息

洪凯定
2023-03-14

我的Kafka消费者必须倾听多个主题。每个主题都定义了一个优先级,比如高、低和中。

消费者服务必须以这样的方式配置,例如,它有30个执行器用于处理高主题的消息,5个执行器用于处理低主题和中主题的每个消息。

如果执行程序被占用并运行当前任务,是否有方法配置消费者停止消费来自相应主题的消息?

共有1个答案

甄霖
2023-03-14

您不应该将工作交给任务执行者;这将导致不按顺序提交偏移量的问题。

您应该为每个主题使用不同的侦听器容器,每个容器具有不同的并发设置。

这样,容器就可以管理并发性。

 类似资料:
  • 属于同一消息组的消息总是按照相对于消息组的严格顺序逐个处理(但是,属于不同消息组的消息可能会被无序处理)。 是否知道这是否意味着300 TPS限制应用于while队列或每个消息组?

  • 假设我有一个名为的Kafka主题,它有几个消息类型(每个消息类型都有不同的Avro模式),如、等等。我想了解一下用Spring Cloud Stream发布/接收相同主题的不同类型是否可行(而且有意义)。特别是,拥有几个将非常有用,每个专用于特定类型。根据这篇博文,当需要订购消息时,这是非常有用的,因为它们与同一个实体相关。这种情况下的配置示例是什么?

  • 例如,假设有一个具有五个订阅者的单个主题,那么该消息是存储在服务总线的数据库中五次--每个订阅者一次--还是该消息仅存储一次,并使用业务逻辑来确定哪些订阅者已经读取了该消息? 如果有一个正式的站点和/或文档提供作为参考就好了。

  • 我想知道如何通过java api在kafka中获取每个主题的消息数量,我不知道想使用下面帖子中提到的命令行工具。知道怎么做吗? PS:我不想通过循环KAFKA消费者流来计算计数,我试图在开始时计算这个计数(在从KAFKA消费之前) Java,如何在阿帕奇Kafka中获取主题中的消息数

  • 我使用自己的自定义Sink插件运行Kafka Connect集群(本地有1个工人Docker Compose)。我想在连接器中使用几个主题:topicA、topicB、topicC,每个主题都有一个分区。 我的连接器启动时的配置子集如下: 使用此配置,我希望Kafka Connect为每个接收器任务分配一个主题,但遗憾的是,这不是我看到的。实践中发生的情况是,为分配了所有主题的每个任务调用Sink