首页 > 解决方案 > 类似于消息队列的软件,可以重新排序事件

问题描述

我正在寻找一些有点像消息队列但可以重新排序事件的软件。像 logstash、kafka 或 rabbit MQ 之类的东西。

我的用例是我们正在接收事件,主要是按顺序进行,但偶尔会有一个带有较旧时间戳的事件,如果“跳过队列”并接下来处理它会很好。(我们可以处理乱序事件,但效率较低)。

排队的项目需要有磁盘支持的保证交付(即程序重新启动不应导致数据丢失)

我能找到的最接近的是Rabbit MQ 的优先级队列- 它允许您定义多达 256 个优先级1,并且优先级较高的消息在较低优先级的消息之前传递。这可能适用于某种启发式方法(例如,优先级current_time - message_time以分钟为单位),但这似乎并不理想。

有更好的吗?

1虽然建议不要超过 10

标签: rabbitmqmessage-queue

解决方案


使用 Kafka,您将获得最大的灵活性。

如果您在顶部使用 KSQL,那么您可以将优先级、已处理属性添加到您的消息中,然后您可以根据您的需要有效地创建流、排序、过滤流。


推荐阅读