有没有办法保证订阅者可以按照发布的顺序读取事件?我现在正在使用回送队列,这有关系吗?
我有一个控制台模拟器,它将控制台输出行作为事件发送。我可能要等到命令结束时才会将所有结果作为一个单元返回,但这样就不可能执行像"telnet“这样的交互式命令了。
问题是,有时,当结果集很长(如"dir“命令)时,某些行似乎放错了位置。输出似乎是以正确的顺序发布的。
发布于 2014-08-19 20:07:13
虽然从技术上讲,回送应该是有序的,但如果你有多个线程在读或写,那么就不能保证顺序。
此外,loopback实际上只用于测试。它并不是一个真正的产品就绪界面。
你可以使用Saga来保存消息的内容,直到你以正确的顺序收到它们。这将消除无序问题。还要考虑确保您的使用者的ConcurrentConsumerLimit为1,这样只有一个线程从队列中读取数据。
https://stackoverflow.com/questions/25371101
复制相似问题