Jakarta EE 编程/Jakarta 消息传递
异步消息传递系统允许两个或多个应用程序以消息的形式交换信息。在这种情况下,消息是业务数据和网络路由标头的自包含包。消息中包含的业务数据可以是任何东西——取决于业务场景——通常包含有关某些业务交易的信息。在企业系统中,消息通知应用程序另一个系统中发生的某些事件或事件。
异步消息可以通过消息定向中间件 (MOM) 在网络上从一个应用程序传输到另一个应用程序。MOM 产品确保消息在应用程序之间正确分配。此外,MOM 通常为需要可靠地交换大量消息的企业提供容错、负载均衡、可扩展性和事务支持。MOM 供应商使用不同的消息格式和网络协议来交换消息,但基本语义相同。API 用于创建消息,为其提供有效负载(应用程序数据),为其分配路由信息,然后发送消息。相同的 API 用于接收其他应用程序生成的的消息。
在现代企业消息传递系统中,应用程序通过称为 *目标* 的虚拟通道交换消息。当您发送消息时,它将被发送到目标,而不是发送到特定应用程序。任何订阅或注册对该目标感兴趣的应用程序都可以接收该消息。通过这种方式,接收消息的应用程序和发送消息的应用程序相互解耦。发送方和接收方之间没有任何绑定,可以根据需要发送和接收消息。
每个 MOM 供应商都实现了自己的网络协议、路由和管理设施,但不同 MOM 提供的开发人员 API 的基本语义相同。正是 API 的这种相似性使 Java 消息服务 (JMS) 成为可能。
JMS 是一个与供应商无关的 Java API,可以与许多不同的 MOM 供应商一起使用。JMS 与 JDBC 非常相似,应用程序开发人员可以使用相同的 API 访问许多不同的系统。如果供应商为 JMS 提供了符合标准的服务提供商,则可以使用 JMS API 向该供应商发送消息并从该供应商接收消息。例如,您可以使用相同的 JMS API 使用 Progress 的 SonicMQ 和 IBM 的 MQSeries 发送消息。