第 9 章 将 Camel 应用程序与 A-MQ 代理集成
本教程介绍了如何使用 A-MQ 镜像部署快速入门。
9.1. 构建和部署 Spring Boot Camel A-MQ 快速入门
此快速入门演示了如何将 Spring Boot 应用程序连接到 AMQ Online,并在使用 OpenShift 上的 Fuse 的两个 Camel 路由之间使用 JMS 消息传递。
先决条件
- 确保 AMQ Online 已部署和运行。要在 OpenShift 上安装 AMQ Online,请参阅在 OpenShift 中 安装和配置 AMQ Online。
- 确保 OpenShift 正确运行,并且 OpenShift 中已安装了 Fuse 镜像流。请参阅管理员入门。
- 确保为 fuse 配置 Maven 存储库,请参阅配置 Maven 存储库。
流程
以开发者身份登录 OpenShift 服务器。
oc login -u developer -p developer
登录
openshift
项目。oc project openshift
使用 Maven 工作流创建 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-sb2-7_11_1-00018-redhat-00002/archetypes-catalog-2.2.0.fuse-sb2-7_11_1-00018-redhat-00002-archetype-catalog.xml \ -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \ -DarchetypeArtifactId=spring-boot-camel-amq-archetype \ -DarchetypeVersion=2.2.0.fuse-sb2-7_11_1-00018-redhat-00002
archetype 插件切换到交互模式,以提示您输入剩余的字段。
Define value for property 'groupId': : org.example.fis Define value for property 'artifactId': : fuse77-spring-boot-camel-amq Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': org.example.fis: : Confirm properties configuration: groupId: org.example.fis artifactId: fuse77-spring-boot-camel-amq version: 1.0-SNAPSHOT package: org.example.fis Y: :Y
出现提示时,为
groupId
值输入org.example.fis
,为artifactId
值输入fuse77-spring-boot-camel-amq
。接受剩余字段的默认值。导航到 quickstart 目录
fuse77-spring-boot-camel-amq
。cd fuse77-spring-boot-camel-amq
运行以下命令,将配置文件应用到 AMQ Online。这些配置文件创建 AMQ Online 用户和队列,两者都具有 admin 特权。
oc login -u system:admin oc apply -f src/main/resources/k8s
运行
mvn
命令,将 Quickstart 部署到 OpenShift 服务器。mvn fabric8:deploy -Popenshift
验证 Quickstart 是否已成功运行:
- 导航到浏览器中的 OpenShift Web 控制台(https://OPENSHIFT_IP_ADDR,将 OPENSHIFT_IP_ADDR 替换为集群的 IP 地址),并使用您的凭证(例如,使用用户名 developer 和密码 developer)登录控制台。
-
在左侧面板中,展开
Home
,然后单击Status
以查看openshift
项目的 Project Status 页面。 -
点
fuse77-spring-boot-camel-amq
查看 Quickstart 的 Overview 信息页面。 -
在左侧面板中,展开
Workloads
。 -
单击
Pods
,然后单击fuse77-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 队列中的信息。