在AMQP中实现消息优先级

我打算使用AMQP来允许分布式机器集合异步报告到中央位置。 这个想法是将消息放入队列中,并允许中央日志记录实体以解耦方式处理队列; '流程'只是创建或更新数据库表中的一行。

我期望的一个问题是消息队列过程中网络抖动的影响 - 如果由于发出的两条消息之间的时间小于网络抖动而导致update意外地insertinsert前,会发生什么情况?

阅读AMQP规范,似乎我可以应用更高的优先级来insert s,以便它们跳过队列并首先处理。 但大概这只适用于在代理中实际存在的队列被跳过的情况。 是否有办法在代理人处施加缓冲或延迟来吸收这种抖动,并在消息传递给消费者之前允许优先级制定?

或者我必须像ActiveMQ所建议的那样顺着重新排序器的路线走下去?


多个发布者之间缺乏排序与网络抖动无关,在分布式应用程序中这是完全自然的事情。 来自同一个发布者的消息将始终被订购。 如果您确实需要由不同节点执行的操作的因果排序,则可以使用再编程器或全局序列编号方案作为唯一选项。 请注意,您无法使用发件人时间戳,因此每个人似乎都先尝试一下。

链接地址: http://www.djcxy.com/p/34065.html

上一篇: Implementing message priority in AMQP

下一篇: Is message priority inherently unimportant in message queue systems?