java - 编写无代理 AMQP 到 MQTT 适配器

标签 java mqtt amqp qpid

我想实现一个 amqp 到 mqtt 适配器,它将接收 amqp 消息,获取它们的有效负载并将其作为 mqtt 消息发布到我的 mqtt 代理。 因此适配器必须能够

  • 监听端口
  • 确认连接请求
  • 接收amqp消息
  • 承认他们
  • 使用 mqtt 发布

在我的生态系统中,我想为传入消息提供不同的协议(protocol),但我只想运行一个 mqtt 代理。我想避开任何其他经纪人。 我读过here amqp“1.0 允许无代理点对点通信”。我想这对于我的用例来说是正确的(尽管 amqp 0-9-1 会很好)。

我很难想出解决这个问题的方法。 rabbitmq客户端库似乎只用于客户端与代理的​​通信。
我也浏览过qpid repo 。借助他们的代理库,我可以在自己的项目中启动嵌入式代理,如图所示 here 。这是一个不错的噱头,但不是我需要的。
mqtt 的东西对我来说没问题。令我困扰的是“等待 amqp 消息”部分。

我已经研究了几个小时了。我这里是瞎子吗?或者它真的那么不常见/复杂吗?
我非常感谢您或网络上对可能的库或示例的任何建议。

谢谢。

最佳答案

根据您使用的语言,您可以使用 Qpid proton-c 或 proton-j 协议(protocol)引擎,并实现您自己的内存 AMQP 1.0 服务器样式组件,该组件可以监听服务器套接字,然后接受传入的 AMQP 1.0 连接并按照您认为合适的方式处理这些消息。这确实需要您对协议(protocol)有相当深入的了解,并实现相当多的逻辑来处理考虑到 AMQP 1.0 协议(protocol)的总体灵 active 可能会看到的各种客户端行为。

通过使用 ActiveMQ Artemis 等众多多协议(protocol)代理之一来为您处理所有这些事情,您可能会节省不少精力。我认为,如果您想走自己的路,您也许可以利用质子 C++ 或 C 客户端中的一些更高级别的代码来提供帮助,但这仍然是一项相当大的工作。

关于java - 编写无代理 AMQP 到 MQTT 适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60229831/

相关文章:

java - "create new visual classes"按钮在 eclipse 上不可点击

java - 更快地动态加载谷歌地图标记

server - 如何使用 Mosquitto 设置我自己的 MQTT 服务器?

nservicebus - *nix 生态系统中存在哪些消息总线技术?

带有 spring amqp 的 rabbitmq - 出现 AmqpException 时消息卡住

java.lang.NullPointerException : Loading three charts (from github) into a 2x2 GridView

java - Android主线程与其他线程之间的通信

java - MQTT 客户端重用于发布/订阅

java - AWS MQTT Websocket,经过身份验证的访问受到限制

node.js - NestJS - 微服务中的发布/订阅模式