3

我们想从我们的 java 实现中订阅一个 JMS 主题。JMS 主题团队建议使用 tibco 库。我只想问是否必须使用服务器/主题用于发送消息的相同库,或者我可以使用任何库而不考虑 JMS 服务器实现?

4

2 回答 2

3

JMS 是一种 API 规范。它不包括有线格式,因此 JMS 提供者可以随意实现它。因此,您使用的 JMS 客户端类型取决于您使用的提供商(例如,如果您使用 Tibco 代理,那么您将使用 Tibco 客户端)。然而,也有像Apache ActiveMQ Artemis这样支持多个 JMS 实现(即 OpenWire 和核心)的代理。还有应该在任何支持 AMQP 的代理上工作的Qpid JMS 客户端。

于 2018-07-09T16:00:02.390 回答
2

JMS 提供商,还有很多,希望你使用他们的产品。因此,您必须为所有客户使用同一家公司的库。例如,EMS 客户端不能与 ActiveMQ 代理一起工作,反之亦然。通常,“有线格式”是专有的,因此不可能仅针对 TIBCO EMS/Solace/MQ 有线格式进行编码。

这种情况使用 AMQP 或 MQTT 解决方案会好一些。在这里,有线格式是公共知识,任何人都可以构建自己的 AMQP 客户端库,并且它们都可以一起工作。但是话又说回来,AMQP API 通常是不同的。所以最佳点可能是 JMS over AMQP(例如 QPid)。

于 2018-07-16T07:47:16.967 回答