|
|
1
5
异步消息传递允许系统以断开连接的方式进行通信。这两个系统不需要同时可用来完成工作。 还有其他好处。消息传递通常提供(有时是无意的)节流机制。如果许多请求同时出现,这将防止接收系统变得不堪重负。 许多消息传递系统还提供持久性和可靠性设施,这保证了消息最终将被传递,即使消息传递平台或接收系统崩溃。 消息队列还提供一个间接层。将消息放在队列上的系统不一定知道谁(如果有)正在接收消息。接收者可以以微妙或剧烈的方式改变,而不会影响发送者。这种松耦合通常是可取的。 许多消息传递解决方案也可以参与事务。这样可以确保系统既可以接收消息,也可以更新响应中的数据库,并且知道两者都成功或都不成功。如有必要,可以“回滚”接收消息,并在出现问题时重试。 |
|
|
2
2
当您需要异步但有保证的方式来处理分层环境中的无状态、面向服务的请求时。 |
|
3
1
消息队列提供可靠的消息传递。它们确保消息不会完全丢失。它们仍然可以被延迟/发送到死掉的消息队列等,但是它们永远不会从系统中完全消失——除非被明确删除,否则在某个地方总会有一个副本,即使它被卡在原始客户机上。 在消息丢失会对业务造成危害和/或导致系统不稳定的情况下,应使用消息队列。使用它们有一个开销,所以只有在业务需求指定时才应该实现它们。 在实现这些消息的情况下,应该有某种监视过程来检查冻结的消息(由于服务关闭而无法处理的消息、消息格式不正确等),并对其进行适当的处理。 |
|
4
1
消息队列对于实现负载平衡很有用。例如,服务器接收“作业”消息(订单、状态消息…)并将其分发给所有侦听客户机。 消息队列保证消息将恰好传递到一个客户机。 如果客户机在不同的计算机上运行,那么总负载将被分配,并且在必要时很容易将另一个客户机抛出到消息负载中,客户机只需连接到队列并接收(部分)消息。 编辑: 也适用于在系统之间移动对象(异步)。如果它们是以独立于平台的格式序列化的( JSON ,xml),甚至可以在不同的编程语言之间交换项目。 |
|
|
Denyk · ZeroMQ操作抛出EXC:[当前状态下无法完成操作] 8 年前 |
|
|
Shubham Mishra · 执行多个芹菜工人以使用唯一队列 8 年前 |
|
|
Tensho · 如何在RabbitMQ中发布数据库之间的数据更改? 8 年前 |
|
|
George · MDB部署成功:然后甚至不会写入系统。出来为什么? 9 年前 |
|
|
Nayeem · 使用JMS中的CCDT文件连接到IBM MQ 9 年前 |