有关消息传递/消息队列的经验法则

NoC*_*ier 1 messaging message-queue

有人可以提供一些关于何时使用消息队列的经验法则以及它们应该解决的实际现实问题吗?

谢谢

Jer*_*emy 5

异步消息传递允许系统以断开连接的方式进行通信.两个系统不必同时可用于完成工作.

还有其他好处.通常,消息传递提供(有时是无意的)限制机制.如果许多请求全部同时进入,这可以防止接收系统不堪重负.

许多消息传递系统还提供持久性和可靠性设施,即使消息传递平台或接收系统崩溃,也能最终传递消息.

消息队列还提供了一个间接层.将消息放入队列的系统不一定知道谁(如果有人)正在接收消息.接收者可以以微妙或激烈的方式改变,而不会影响发送者.像这样的松耦合通常是理想的.

许多消息传递解决方案也可以参与交易.这可以确保系统既可以接收消息又可以响应更新数据库,并且知道两者都成功或者都不成功.如有必要,可以"回滚"消息的接收,并在出现问题时重试.