【问题标题】:Implementation of queues using kafka server使用kafka服务器实现队列
【发布时间】:2019-01-03 04:50:21
【问题描述】:

我想用kafka实现一个队列机制。但是找不到任何地方,如果可以从为任何主题创建的队列中窥视数据而不前进到它。

我想从队列中读取数据,并根据不同的条件想要删除现有消息或将另一条消息添加到此队列中。此外,是否可以使用来自不同机器的单个 kafka 服务器。

我参考了 tutorialspoint 以了解更多信息。

提前致谢。任何线索将不胜感激。

【问题讨论】:

  • 您无法查看 kafka 也无法删除消息。你只能玩消费者抵消。

标签: apache-kafka message-queue


【解决方案1】:

请记住,Kakfa 可以扩展每个主题的多个分区,并且它不提供分区之间的任何排序保证。因此,如果您想要严格排序,请不要使用 kafka。在一个消费者组中,如果您希望每个主题有 n 个消费者,则需要至少有 n 个分区。

消费者不会删除消息,他们会提交消息的偏移量。大多数客户端的默认配置是在读取时自动提交偏移量。您可以随时将消息重新插入主题。但是您不能跳过一条消息并期望稍后处理它。

您可以将任意数量的机器连接到 kafka 服务器。通常,您有多个服务器作为 kafka 集群,并具有容错复制功能。

【讨论】:

  • 不能跳过消息并期望稍后处理它 -- 有工具可以倒回消费者偏移量
  • 同意,可以通过重置偏移量来重新使用“所有”消息。但无法重置并期望仅使用跳过的消息。 (好吧,可以编写一个函数来确定消息是否已处理,但可能有更好的方法来做到这一点)
猜你喜欢
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
  • 2015-05-12
  • 2015-10-24
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 2019-06-21
相关资源
最近更新 更多