6.2. camel-jms


有两种支持的方法将 camel-jms、camel-sjms 和 camel-sjms2 端点连接到远程 AMQ 7 代理。

  1. 使用 pooled-connection-factory 配置远程连接器,如"JBoss EAP 配置消息传递指南》中的"配置" Resource Adapter to Connect to Red Hat JBoss AMQ 7 一节中所述。
  2. 使用 connection-factory 配置远程连接器,如 使用 connection-factory 配置远程连接器

第一个选项是首选的方法,因为它提供连接池和 XA 事务支持。

对于使用持久订阅者的消息传递场景,由于 JavaEE 7 规格所施加的限制,JBoss EAP 上的 Fuse 7.11 不支持 pooled-connection-factory。在这种情况下,最好配置标准未池连接。

使用 connection-factory 配置远程连接器

  1. 创建一个指向远程消息传递服务器的出站套接字绑定:

    /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=messaging-remote-throughput:add(host=localhost, port=61616)
  2. 创建引用在第 1 步中创建的出站套接字绑定的远程连接器。

    /subsystem=messaging-activemq/server=default/remote-connector=netty-remote-throughput:add(socket-binding=messaging-remote-throughput)
  3. 创建连接因素,引用第 2 步中创建的远程连接器。

    /subsystem=messaging-activemq/server=default/connection-factory=simple-remote-artemis-connection-factory:add(entries=[java:/jms/RemoteJms],connectors=[netty-remote-throughput])

6.2.1. 消息传递代理和客户端

摘要

Fuse 7.11 不提供默认的内部消息传递代理,但它旨在与外部 JMS 代理进行接口。

JBoss EAP 上的 Fuse 7.11 使用在 JBoss EAP 上配置消息传递 代理时详述的资源适配器。

有关 JBoss EAP 上 Fuse 7.11 上可用的外部代理、JCA 适配器和 Camel 组件组合的更多信息,请参阅支持的配置。https://access.redhat.com/articles/310603

有关使用 JMS 的 JBoss EAP 上 Fuse 连接到外部代理的更多信息,请参阅 第 6.2 节 “camel-jms”

Camel-jms Quickstart

提供了快速入门,以演示在 JBoss EAP 上使用 Fuse 来制作和使用 JMS 消息的 camel-jms 组件。

在此快速入门中,Camel 路由会使用来自 EAP_HOME/standalone/data/orders 的文件,并将其内容放在名为 OrdersQueue 的内存中 ActiveMQ root 队列上。然后,另一个 Camel 路由消耗 OrdersQueue 的内容,并将订单排序为 EAP_HOME/standalone/data/orders/processed 中的各个国家目录。

CLI 命令创建和删除 OrdersQueue CLI 脚本,以便在部署应用和取消部署时为您创建并移除 JMS OrdersQueue。这些脚本位于 EAP_HOME/quickstarts/camel-jms/src/main/resources/cli 目录中。

先决条件

要运行此快速入门,您必须有一个 Fuse 7.11 工作版本

您还需遵循 使用 JBoss AMQ 进行远程 JMS 通信 中的说明,以连接到外部 AMQ 7 代理。然后您可以使用默认连接工厂注入连接工厂。

@Resource(mappedName = "java:jboss/RemoteJmsXA")
ConnectionFactory connectionFactory;

设置快速入门

  1. 以单机模式启动 JBOSS EAP。
  2. 导航到 EAP_HOME/quickstarts/camel/camel-jms
  3. 输入 mvn clean install -Pdeploy' 以构建和部署 Quickstart。
  4. 浏览至 http://localhost:8080/example-camel-jms

您应该会看到一个名为"Orders Received"的页面。随着向示例应用程序发送订单,在此页中将列出每个国家每个国家的订单列表。

运行快速入门

EAP_HOME/quickstarts/camel-jms/src/main/resources 目录中有一些示例顺序 XML 文件。Camel 将每 5 秒随机选择一个文件,并将其复制到 EAP_HOME/standalone/data/orders 中进行处理。

控制台将输出信息详细描述了每个订购所发生的情况。输出将如下所示:

JmsConsumer[OrdersQueue]) Sending order to the UK
JmsConsumer[OrdersQueue]) Sending order to another country
JmsConsumer[OrdersQueue]) Sending order to the US

当文件被使用后,您可以返回到 http://localhost:8080/example-camel-jms/orders。每个国家的接收订单的数目应该已由 1 增加。

所有处理的订购将分成以下目的地:

EAP_HOME/standalone/data/orders/processed/uk
EAP_HOME/standalone/data/orders/processed/us
EAP_HOME/standalone/data/orders/processed/other

取消部署

要取消部署示例,可导航到 EAP_HOME/quickstarts/camel/camel-jms run mvn clean -Pdeploy

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.