首先让我告诉你我的设置。
问题场景是, 我发送消息m1然后m2。 m1需要时间来处理。 m2进程在m1之前完成。对于m1和amp; m2,交货标签与1.相同。因此消息m2在m1之前得到了回应,当m1被激活时,我得到未知的交货标签1异常。
令人惊讶的是消息m1确认也被制作人收到了。但问题是在RMQ管理控制台中长时间处于未处理状态的m1手。
这可能在RMQ中我可以在m1之前确定吗?我知道这两个消息都在同一个通道和相同的队列中。问题是我不能保证这两条消息都能被传递到不同的队列。
答案 0 :(得分:1)
如果它们具有相同的交付标签,则它们在不同的线程/渠道上交付 - 交付标签的范围在渠道级别。看来你正试图在错误的频道上找到m1。
令人惊讶的是消息m1 ack也被制作人收到了。
我不知道你的意思 - 消费者不会去生产者;消费者和生产者是独立的。制片人与消费者的角色完全不同。
建议您不要在其他线程上发送ack;渠道为not thread safe。