gpt4 book ai didi

.net - 使用来自 ActiveMQ 的消息时如何保持消息顺序?

转载 作者:行者123 更新时间:2023-12-04 13:23:54 26 4
gpt4 key购买 nike

我有一个使用 ActiveMQ 客户端的 .NET 服务。我已经实现了一个带有事务连接的 MessageListener 来使用消息。

有时,我会以不同的顺序收到消息,它们被放入队列中。

使用 MessageListner 是错误的吗?有没有办法保留消息顺序?

仅供引用:有一个生产者将消息放入队列,一个消费者从队列中取出消息。

最佳答案

你不应该做任何事情来维持秩序;这是消息队列为您做的事情之一。我认为,如果您有一个消费者在监听队列,并且它正在无序处理消息,那么您要么发现了错误,要么消息没有按照您认为的顺序排列。

此外,还有 this question来自 ActiveMQ FAQ这可能会有所帮助。

编辑:来自阅读 duffymo's answer 上的评论,看起来你有点过度设计了。一般来说,像ActiveMQ、MQ Series、joram等这样的消息队列有两个特点:一是按入队顺序传递消息,二是保证消息传递。发送单独的 ACK 消息是多余的;这有点像提交数据库事务,然后查询相同的信息以仔细检查数据库是否实际存储了它。

话虽如此,您的服务器是多线程的吗?如果是这样,它可能会将响应排入队列 之前 它将 ACK 加入队列。

关于.net - 使用来自 ActiveMQ 的消息时如何保持消息顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/426532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com