6.2. camel-jms


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

  1. 使用 pooled-connection-factory 配置 remote-connector,如 JBoss EAP 配置消息传递指南中的 配置 Artemis 资源适配器 以连接到 Red Hat JBoss AMQ 7 部分。
  2. 使用 connection-factory 配置 remote-connector,如下所述 使用 connection-factory 配置一个 remote-connector

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

对于使用持久订阅者的消息传递场景,JBoss EAP 上的 Fuse 7.10 不支持 pooled-connection-factory 的消息传递场景,因为 deploymentutils 7 规格进行了限制。在这些情况下,首选配置一个标准的未池 connection-factory。

使用 connection-factory 配置一个 remote-connector

  1. 创建一个指向远程消息传递服务器的 outbound-socket-binding:

    /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=messaging-remote-throughput:add(host=localhost, port=61616)
  2. 创建一个 remote-connector,引用在第 1 步中创建的 outbound-socket-binding。

    /subsystem=messaging-activemq/server=default/remote-connector=netty-remote-throughput:add(socket-binding=messaging-remote-throughput)
  3. 创建一个 connection-factory 引用在第 2 步中创建的 remote-connector。

    /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.10 不附带默认的内部消息传递代理,但设计为与外部 JMS 代理接口。

JBoss EAP 上的 Fuse 7.10 使用 JBoss EAP 上配置消息传递中详述的资源适配器,以访问外部消息传递代理。

有关 JBoss EAP 上 Fuse 7.10 上可用于消息传递的外部代理、JCA 适配器和 Camel 组件组合的更多信息,请参阅 支持的配置

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

camel-jms quickstart

提供了一个快速入门,用于演示将 camel-jms 组件与 JBoss EAP 上的 Fuse 搭配使用,以生成和使用 JMS 消息。

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

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

先决条件

要运行此快速入门,您必须有 Fuse 7.10 的工作版本

您还必须按照使用 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' 以构建和部署快速入门。
  4. 浏览 http://localhost:8080/example-camel-jms

您应该会看到标题为 'Orders Received' 的页面。当我们向示例应用程序发送订单时,本页中将列出每个国家的订购列表。

运行快速启动

EAP_HOME/quickstarts/camel/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 运行 mvn clean -Pdeploy

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.