第 10 章 将 Camel 应用程序与 A-MQ 代理集成
本教程介绍了如何使用 A-MQ 镜像部署快速入门。
10.1. 构建和部署 Spring Boot Camel A-MQ 快速入门
此快速入门演示了如何将 Spring Boot 应用程序连接到 AMQ Broker,并在使用 OpenShift 上的 Fuse 的两个 Camel 路由之间使用 JMS 消息传递。
先决条件
- 确保 AMQ Broker 已安装并运行,如 在 OpenShift 上部署 AMQ Broker 所述。
- 确保 OpenShift 正确运行,并且 OpenShift 中已安装了 Fuse 镜像流。请参阅管理员入门。
- 确保为 fuse 配置 Maven 存储库,请参阅配置 Maven 存储库。
步骤
以开发者身份登录 OpenShift 服务器。
oc login -u developer -p developer
为 Quickstart 创建一个新项目,例如:
oc new-project quickstart
使用 Maven archetype 检索 Quickstart 项目:
mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -DarchetypeCatalog=https://maven.repository.redhat.com/ga/io/fabric8/archetypes/archetypes-catalog/2.2.0.fuse-7_12_0-00018-redhat-00001/archetypes-catalog-2.2.0.fuse-7_12_0-00018-redhat-00001-archetype-catalog.xml -DarchetypeGroupId=org.jboss.fuse.fis.archetypes -DarchetypeArtifactId=spring-boot-camel-amq-archetype -DarchetypeVersion=2.2.0.fuse-7_12_0-00018-redhat-00001
导航到 quickstart 目录
fuse712-spring-boot-camel-amq
。cd fuse712-spring-boot-camel-amq
运行以下命令,将配置文件应用到 AMQ Broker。这些配置文件创建 AMQ Broker 用户和队列,它们都有 admin 权限。
oc login -u admin -p admin oc apply -f src/main/resources/k8s
为应用程序创建 ConfigMap,例如:
kind: ConfigMap apiVersion: v1 metadata: name: spring-boot-camel-amq-config namespace: quickstarts data: service.host: 'fuse-broker-amqps-0-svc' service.port.amqp: '5672' service.port.amqps: '5671'
使用 Step 3 中的 ImageStream 运行
mvn
命令,将 Quickstart 部署到 OpenShift 服务器:mvn oc:deploy -Popenshift -Djkube.generator.fromMode=istag -Djkube.generator.from=openshift/fuse-java-openshift:1.12
验证 Quickstart 是否已成功运行:
- 导航到浏览器中的 OpenShift Web 控制台(https://OPENSHIFT_IP_ADDR,将 OPENSHIFT_IP_ADDR 替换为集群的 IP 地址),并使用您的凭证(例如,使用用户名 developer 和密码 developer)登录控制台。
-
在左侧面板中,展开
Home
,然后单击Status
以查看openshift
项目的 Project Status 页面。 -
点
fuse712-spring-boot-camel-amq
查看 Quickstart 的 Overview 信息页面。 -
在左侧面板中,展开
Workloads
。 -
单击
Pods
,然后单击fuse712-spring-boot-camel-amq-xxxxx
。此时会显示 Quickstart 的 pod 详情。 点
Logs
查看应用程序的日志。输出显示消息被成功发送。
10:17:59.825 [Camel (camel) thread #10 - timer://order] INFO generate-order-route - Generating order order1379.xml 10:17:59.829 [Camel (camel) thread #8 - JmsConsumer[incomingOrders]] INFO jms-cbr-route - Sending order order1379.xml to the UK 10:17:59.829 [Camel (camel) thread #8 - JmsConsumer[incomingOrders]] INFO jms-cbr-route - Done processing order1379.xml 10:18:02.825 [Camel (camel) thread #10 - timer://order] INFO generate-order-route - Generating order order1380.xml 10:18:02.829 [Camel (camel) thread #7 - JmsConsumer[incomingOrders]] INFO jms-cbr-route - Sending order order1380.xml to another country 10:18:02.829 [Camel (camel) thread #7 - JmsConsumer[incomingOrders]] INFO jms-cbr-route - Done processing order1380.xml
- 要查看 Web 界面上的路由,请点 Open Java Console 并检查 AMQ 队列中的信息。