【问题标题】:AMQP 1.0 library for Java with full peer-to-peer (brokerless) support?具有完全对等(无代理)支持的 Java AMQP 1.0 库?
【发布时间】:2020-07-21 01:28:04
【问题描述】:

关于上述问题:是否有完全支持点对点(点对点、无代理)功能的 AMQP 1.0 的 Java 库?

我缺少的部分是为直接传入的消息打开本地端口而不通过代理的功能。

到目前为止,我已经使用了 SwiftMQ AMQP 1.0 客户端库,它可以很好地通过代理发送和接收(这里使用的 RabbitMQ 服务器没有任何缺陷),也可以直接发送到另一个端点。

另一个端点是用 C# 编写的,使用 AMQPNetLite 库。我发现 AMQPNetLite 库通过 ContainerHost 类提供了上述功能(另请参阅 here)。

我最好的猜测是 QPID Proton-J 以某种方式支持我正在寻找的东西,但文档和示例很少。 QPID Proton 库的 Python 变体还在this example 中显示了Container 类。但是,QPID Proton-J (Java) 库中不包含 Container 类或类似的东西。

是的,我也看到this question,这让我怀疑我搜索的内容是否存在......

任何帮助将不胜感激。

【问题讨论】:

    标签: java amqp qpid


    【解决方案1】:

    据我所知,没有任何积极维护的 Java 点对点实现。 proton-j 项目有一个相当古老的实验性 API,称为 reactor,它可以做到这一点,但没有维护,并且可能有相当多的错误。 vertx-proton 项目有一个相对简单的基于服务器的实现,它可能对你有用,但我不知道它的维护有多积极,所以你必须尝试一下,看看效果如何。

    尽管 AMQP 协议有很多复杂性,但您可以自己编写,因此您需要权衡点对点与嵌入式broker 或简单message router 之类的重要性。有一些基本的 AMQP 服务器代码 here 可以作为编写您自己的基于 proton-j 的机制的开始。

    【讨论】:

    • 很抱歉这么晚才回来,但非常感谢您的回答 - 这对您有很大帮助。
    【解决方案2】:

    不要乱用 AMQP 1.0 协议。这太复杂了。 SwiftMQ AMQP 1.0 客户端可以完美运行,因为每个人都使用它来测试他们的实现。

    您需要的是您启动 intravm 的嵌入式代理。您使用哪一个并不重要,但我猜应该是 Java。所以选择 Artemis 甚至是开源的 SwiftMQ CE。

    然后将您的客户端连接到本地嵌入式代理并对其进行配置以打开 AMQP 端口。

    【讨论】:

      猜你喜欢
      • 2015-03-23
      • 2012-08-11
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      相关资源
      最近更新 更多