des*_*sad 2 activemq-classic jms tibco-ems ibm-mq
我想部署ActiveMQ以便与其他MOM实现的jms连接和通信,例如WebsphereMQ,Tibco EMS,Oracle WebLogic JMS等.
就我在网上研究而言,这似乎可以通过在activemq之上构建一个能够与另一端通信的所谓桥接器,而不管每个jms实现使用的底层线路协议.
虽然示例很少,而且往往很少,因此我需要在我的类路径和桥接配置中包含来自每个此类实现(Weblogic,WebsphereMQ,TIBCO EMS等)的jms客户端jar,这一点令人困惑.没有任何这样的罐子可以做到这一点吗?
由于目标是连接到单独的组织MOM,我想避免使用任何第三方,可能是许可的jar.
......一个令人困惑的问题是我是否需要在我的类路径和网桥配置中包含来自每个此类实现(Weblogic,Websphere MQ,TIBCO EMS等)的JMS客户端jar.没有任何这样的罐子可以做到这一点吗?
TL; DR:您需要供应商的专有类.
JMS定义API并将有线格式和其他实现细节留给传输供应商.此外,在专有实现中,有线格式可以显着改变版本.(专有代码的一个优点是能够在这样做时进行如此大的结构更改,从而提高性能,可靠性或功能.)
两个JMS实现具有共性的一个地方是消息在内存中.由于所有传输供应商的实现都继承自相同的Java JMS类,因此通常可以实例化来自两个不同传输供应商的消息对象,并从一个传输供应商复制到另一个.为此,您必须拥有每个受支持的传输提供程序的jar.
实际上,这就是我使用过的大多数JMS桥接产品的工作方式.桥接代码使用完全限定的类名来引用来自两个不同供应商的类.然后它创建两个连接工厂,每个传输一个,两个不同的目的地,每个传输一个.然后,它从一个提供程序上的队列中读取消息,将其复制到另一个传输提供程序上的消息对象,然后写入该消息.
这种方法当然有很多"陷阱".我将列出一些显而易见的:
x,那么出于规划目的,假设一个输电桥很难(x)**5.这并不是说"不编码桥",因为它们非常有用.请注意,这不是一项微不足道的任务.
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |