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

Kafka支持主题或消息的优先级吗?

颜安宁
2023-03-14

我正在研究Kafka是否支持任何要处理的队列或消息的优先级。

看来它不支持任何这样的事情。我在谷歌上找到了这个也支持这一点的邮件存档:http://mail-archives.apache.org/mod_mbox/incubator-kafka-users/201206.mbox/%3CCAOEJIJHVHSR=d6astihpsqwvg6vk5xylam6ymdcd6uauoxf-dq@mail.gmail.com%3e

这里有没有人把Kafka配置成对任何主题或消息进行优先排序?

共有1个答案

潘向明
2023-03-14

Kafka是一个快速、可扩展、分布式的提交日志服务,它的设计是分区的、复制的,因此没有主题或消息的优先级。

我也面临着和你一样的问题。解决方法很简单。在Kafaka队列中创建主题,让我们说:

>

  • high_priority_queue

    在high_priority_queue中发布高优先级消息,在medium_priority_queue中发布中等优先级消息。

    现在您可以创建Kafaka消费者和开放流的所有主题。

      // this is scala code 
      val props = new Properties()
      props.put("group.id", groupId)
      props.put("zookeeper.connect", zookeeperConnect)
      val config = new ConsumerConfig(props)
      val connector = Consumer.create(config)
      val topicWithStreamCount = Map(
           "high_priority_queue" -> 1,
           "medium_priority_queue" ->  1, 
           "low_priority_queue" -> 1
      )
      val streamsMap = connector.createMessageStreams(topicWithStreamCount)
    

    现在,如果主题没有任何消息,您可以首先读取high_priority_queue主题,然后回退到medium_priority_queue主题。如果medium_priority_queue为空,则读取low_priority queue。

    这招对我很管用。也许对你有帮助!!。

  •  类似资料:
    • 我正在使用Kafka Consumer阅读多个主题,我需要其中一个具有更高优先级。处理需要很多时间,而且(低优先级)主题中总是有很多消息,但我需要尽快处理来自另一个主题的消息。 这和Kafka是否支持主题或消息的优先级类似?但这一个使用的是旧的API。 在新的API(0.10.1.1)中,有一些方法 但我不清楚,如何有效地检测高优先级主题中有新消息,有必要暂停其他主题的消费。 有什么想法/例子吗?

    • Netty中是否有任何嵌入式优先级机制可以帮助我决定哪些消息比其他消息发送得更频繁?

    • RabbitMQ有消息优先级的概念吗?我有一个问题,一些更重要的消息由于队列中不太重要的消息而被拖慢。我希望高优先级的优先,并移动到队列的前面。 我知道我可以用两个队列来近似计算,一个是“快”队列,另一个是“慢”队列,但这看起来像是一个黑客。 有人知道使用RabbitMQ的更好的解决方案吗?

    • Listner代码 请帮助我解决问题,因为这样的循环每天都会发生。完全读取topic1消息,然后从Topic2读取消息。

    • 我需要一个Kafka主题存储的消息数量。这与任何消费者是否消费了消息无关。 以上是否等于Kafka主题中当前存储的消息数?

    • 问题内容: 我想知道如何或/和如何工作? 例如,如果我想获取display = 1的所有行 我可以做 如果我想要显示= 1或2的所有行 我可以做 但是,如果我想获取display = 1或2的所有行,并且其中 任何 内容,标签或标题包含 逻辑将如何发挥作用? 是我的猜测。但是我可以通过几种方式阅读。 它的读数是否为: 或作为 等等 问题答案: MySQL文档有一个很好的页面,其中包含有关哪些运算符