【问题标题】:Use of Apache Qpid C++ JMS clientApache Qpid C++ JMS 客户端的使用
【发布时间】:2016-11-26 10:56:19
【问题描述】:

我想使用 Apache Qpid 订阅 Java 消息传递服务 (JMS) 发布-订阅服务。但是,我不想使用 Java,而是想使用 C++。我的客户告诉我这是可能的(甚至说微不足道)。他们是正确的吗?谁能给我举个例子?我看过的所有地方都说要使用 JMS,我必须使用 Java。这里的重点是该服务是第三方服务(因此我无法将其更改为使用 AMQP 或除 JMS 之外的任何其他协议)。

【问题讨论】:

  • 如果你的客户说这是小事,也许他可以提供指点?
  • 我怀疑我的客户可能并不知道。另外,想获得独立的意见。
  • 如果您只是想订阅和排空消息,请查看 Qpid c++ 安装>示例文件夹中的 drain 可执行文件。如果足够了,您可以使用 drain 的源代码来实现它。让我知道这是否有帮助,我将为您提供有关如何实现此功能的完整路径。

标签: java c++ apache jms qpid


【解决方案1】:

这在很大程度上取决于您使用的 JMS 代理。如果代理支持 AMQP 1.0 协议以及它为其 JMS 客户端实现的任何本机协议,那么您可能很幸运。

除了对 AMQP 1.0 的支持之外,您还需要良好的跨协议通信支持,这样从 JMS 客户端发送的消息可以变成对订阅的 AMQP 客户端有意义的东西,或者反过来代理需要映射将传入的 AMQP 消息转换为有意义的 JMS 表示,以便两者成功互操作。

像 ActiveMQ 这样的代理确实支持这类事情以及对其他协议的支持。您需要在代理中打开AMQP 支持,然后您可以使用Qpid 项目中的C++ 客户端相对轻松地发送和接收消息。

【讨论】:

  • 问题是,我无法控制提供者。那么你是说这一切都可以在客户端完成吗?到目前为止,提供者拒绝通过网络发送 AMQP。
  • 不,客户端没有神奇的能力让提供者说出它不启用的协议。如果要使用 AMQP,则需要启用 AMQP。
  • 叹息——我也这么想。不久前,我们建议使用 AMQP,但服务提供商拒绝了。
  • 为什么不使用支持启用协议的 C++ 客户端?
  • 因为我们不知道协议是什么!没关系 - 我现在已经与服务提供商达成协议,所以我认为我们很好。事实证明,他们选择的供应商都有 C++ 客户端。感谢蒂姆的帮助。
猜你喜欢
  • 1970-01-01
  • 2013-02-05
  • 2014-08-04
  • 2015-04-04
  • 2010-10-14
  • 2013-07-19
  • 2021-11-07
  • 2012-04-17
  • 2021-03-03
相关资源
最近更新 更多