【发布时间】:2020-02-17 02:22:25
【问题描述】:
我曾经在一次采访中被问到,你会如何处理消息队列中乱序的消息。已经有一段时间了,我还没有找到明确的答案,我想知道该领域的专家是否可以帮助我回答这个问题以解决我自己的好奇心。
我了解某些消息队列提供完全一次和 FIFO 保证。我也知道流系统中事件时间和处理时间的概念。例如,在 Kafka 等基于日志的消息队列中,由于存在偏移量和消息持久性(我可能错了),可能不太可能发生混合排序。我还考虑过使用时间戳,要求每个消息发送者在发送消息之前记录消息的时间,但由于时钟偏差,这充满了不一致。
考虑到所有这些,我想知道一个地址如何在 AMQP、JMS 或 RabbitMQ 等传统消息传递系统中混合排序,其中十几个 IOT 设备可能正在发送消息,而我作为消费者希望在正确的顺序。
【问题讨论】:
标签: apache-kafka message-queue distributed-computing distributed-system