当前位置: 首页 > 知识库问答 >
问题:

AMQP 1.0库Java完全点对点(无代理)支持?

沃阳飙
2023-03-14

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

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

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

另一个endpoint使用AMQPNetLite库以C#编写。我发现AMQPNetLite库通过ContainerHost类提供了上述功能(另请参见此处)。

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

是的,我也看到了这个问题,这让我怀疑我搜索的东西是否存在...

任何帮助都将不胜感激。

共有2个答案

宗政昱
2023-03-14

不要弄乱AMQP 1.0协议。这太复杂了。SwiftMQ AMQP 1.0客户端可以完美地工作,因为每个人都使用它来测试自己的实现。

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

然后将客户端连接到本地嵌入式代理,并将其配置为打开AMQP端口。

芮立果
2023-03-14

据我所知,没有任何主动维护Java点对点支持的实现。质子-j项目有一个相当古老的实验性API,称为反应器,它可以做到这一点,但没有维护,可能有相当多的错误。vertx-质子项目有一个相对简单的基于服务器的实现,可能适合您,但我不知道它的主动维护程度,所以您必须尝试一下,看看它是如何进行的。

尽管AMQP协议有许多复杂性,但您可以自己编写,因此您需要权衡对等协议与嵌入式代理或简单消息路由器等协议的重要性。这里有一些基本的AMQP服务器代码,可以作为编写自己的基于proton-j的机制的开始。

 类似资料:
  • 我试图整合贝宝的自适应支付API到我的应用程序将只使用对等交易,但我不能做任何相关的对等支付。我尝试使用这个工具从贝宝,但我仍然没有任何成功。通过这个Paypal工具,我尝试把钱寄到我的一个个人沙箱账户和我的另一个个人沙箱账户,但它仍然向我收取(Paypal的标准商业客户交易费)。 所以,我只想能够通过我的应用程序使用没有任何费用的点对点交易给朋友/家人汇款。因此,我的问题是如何才能集成自适应支付

  • 我在以前的一些应用程序中一直使用HtmlUnit(开发人员做得很好)作为无头浏览器,但javascript支持对于我的下一个应用程序将访问的某些网站不起作用。 > 我听说了用于Python的QtWebKit绑定,但我的应用程序将使用Java,或者是否有用于WebKit或QtWebKit的Java绑定? 有人知道一个好的无头Java浏览器,它完全支持javascript吗?

  • SSH代理节点用于建立平台与VPC网络之间的通信隧道,实现平台对VPC中资源的管理,安装监控Agent,收集监控数据等。 SSH代理节点用于建立平台与VPC网络之间的通信隧道,实现平台对VPC中资源的管理,安装监控Agent,收集监控数据等。 通过在VPC中选择一台能与外网联通的虚拟机作为SSH代理节点,后续平台可以通过该SSH代理节点的local forward为VPC内网络互通的虚拟机安装Ag

  • 问题内容: 我试图在工作场所建立一个python开发环境,以创建一些基本应用程序。 我似乎无法使pip正常工作 ,例如,我键入并收到以下错误消息: 我所做的研究似乎表明代理意识是我的问题,这是否正确,如果是这样的话,我不确定这到底意味着什么或如何解决。 问题答案: 如果知道代理信息,则可以将其传递给命令行: 完整的字符串可能很简单: 您的(公司)代理服务器在哪里。您只需要通过,并且代理也需要该信息

  • 您好,我正在使用Graphdb存储一些三元组,如下图所示。这个特定的RDF节点使用常规URIhttp://example/regular/uri.我希望做的不仅是完全删除附加到此节点的所有属性,还删除节点本身。(结果是http://example/regular/uri不再出现在图形数据库中) 到目前为止,我只能删除所有属性,但无法删除实际的RDF节点本身。这似乎很简单,但我在网上研究的越多,这似

  • 我正在从事一个名为“Cloudnet-v3”的开源项目。我正在使用本地机器上的符号链接/数据连接到IntelliJProjects文件夹中的数据点。 我收到了以下启动命令: 我当前的工作目录是: 因此,每当我在workdir中执行给定命令时,它都会失败,并出现以下错误:完整日志 现在我想知道,因为它在自动环境中工作,但主分支源没有变化,例如,到/data/launcher而不是launcher的路