JMS代理在JMS生态系统中的职责是什么?

JMS代理在JMS生态系统中的职责是什么?,jms,Jms,我当时正在读这篇文章,并且被答案第一行中的JMS代理一词弄糊涂了: MS(ActiveMQ是JMS代理实现) 我想知道什么是JMS代理,它的职责是什么 列出了JMS生态系统中的几个元素,但没有提到代理本身。对于什么是JMS代理,实际上没有正式的定义,但消息队列和代理之间在概念上有区别。这是我的看法 消息队列仅查看消息头以确定将消息发送到何处,消息队列不检查消息正文或执行任何转换消息正文内容的代码。消息队列的任务是传递消息,最终,一次且仅一次,并按发送顺序传递消息 MessageBroker提供

我当时正在读这篇文章,并且被答案第一行中的JMS代理一词弄糊涂了:

MS(ActiveMQ是JMS代理实现)

我想知道什么是
JMS代理
,它的职责是什么


列出了JMS生态系统中的几个元素,但没有提到代理本身。

对于什么是JMS代理,实际上没有正式的定义,但消息队列和代理之间在概念上有区别。这是我的看法

  • 消息队列仅查看消息头以确定将消息发送到何处,消息队列不检查消息正文或执行任何转换消息正文内容的代码。消息队列的任务是传递消息,最终,一次且仅一次,并按发送顺序传递消息
  • MessageBroker提供了一个编程环境,您可以在其中轻松高效地编写消息转换代码。例如,您可能需要将消息的内容从格式a转换为格式B,并且您不希望使用格式a的旧客户端必须重新编写,因此您需要编写消息转换器程序并将其部署到message broker。在这种情况下,
    messagebroker
    将是一个单独的进程,可能运行在负责运行消息处理代码的单独机器上
消息代理的巨大价值在于,它们可以为您做一些非常好的事情,用于并发处理消息、处理逻辑的故障转移、处理逻辑的部署、监视和日志记录。。。等等。将MessageBroker视为编写消息处理代码的专用应用程序服务器,可能使用自定义高级语言。例如,IBM MessageBroker可以在ESQL中编程,ESQL是SQL的一个扩展,以及您相互连接的图表和节点。为message borker编写的程序将比您自己使用普通JMS编写所有代码时要短

经纪人可以集中或分布,例如,你可以在纽约有一个中央经纪人,在伦敦有一个客户,香港有客户。或者您可以让代理在伦敦和香港运行,并使消息处理更接近消息的源/目的地,这将取决于您的管理基础设施和消息代理需要与之交谈的数据库等其他资源。p>