此内容没有您所选择的语言版本。
Chapter 8. Integrating a Camel Application with the A-MQ Broker
This tutorial shows how to deploy a quickstart using the A-MQ image.
8.1. Building and Deploying a Spring Boot Camel A-MQ Quickstart
This example requires a JBoss A-MQ 6 image and deployment template. If you are using CDK 3.1.1+, JBoss A-MQ 6 images and templates should be already installed in the openshift
namespace by default.
Prerequisites
- Ensure that OpenShift is running correctly and the Fuse image streams are already installed in OpenShift. See Getting Started for Administrators.
- Ensure that Maven Repositories are configured for fuse, see Configuring Maven Repositories.
Procedure
Get ready to build and deploy the quickstart:
Log in to OpenShift as a developer.
oc login -u developer -p developer
Create a new project amq-quickstart.
oc new-project amq-quickstart
Determine the version of the A-MQ 6 images and templates installed.
$ oc get template -n openshift
You should be able to find a template named
amqXX-basic
, whereXX
is the version of A-MQ installed in Openshift.
Deploy the A-MQ 6 image in the
amq-quickstart
namespace (replaceXX
with the actual version of A-MQ found in previous step).$ oc process openshift//amqXX-basic -p APPLICATION_NAME=broker -p MQ_USERNAME=admin -p MQ_PASSWORD=admin -p MQ_QUEUES=test -p MQ_PROTOCOL=amqp -n amq-quickstart | oc create -f -
NoteThis
oc
command could fail, if you use an older version ofoc
. This syntax works withoc
versions 3.5.x (based on Kubernetes 1.5.x).Add a user role that is needed for discovery of mesh endpoints (through Kubernetes REST API agent).
$ oc policy add-role-to-user view system:serviceaccount:amq-quickstart:default
Create the quickstart project using the Maven workflow.
$ 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-740017-redhat-00003/archetypes-catalog-2.2.0.fuse-740017-redhat-00003-archetype-catalog.xml \ -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \ -DarchetypeArtifactId=spring-boot-camel-amq-archetype \ -DarchetypeVersion=2.2.0.fuse-740017-redhat-00003
The archetype plug-in switches to interactive mode to prompt you for the remaining fields.
Define value for property 'groupId': : org.example.fis Define value for property 'artifactId': : fuse74-spring-boot-camel-amq Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': org.example.fis: : [INFO] Using property: spring-boot-version = 1.5.17.RELEASE Confirm properties configuration: groupId: org.example.fis artifactId: fuse74-spring-boot-camel-amq version: 1.0-SNAPSHOT package: org.example.fis spring-boot-version: 1.5.17.RELEASE Y: :
When prompted, enter
org.example.fis
for thegroupId
value andfuse74-spring-boot-camel-amq
for theartifactId
value. Accept the defaults for the remaining fields.Navigate to the quickstart directory
fuse74-spring-boot-camel-amq
.$ cd fuse74-spring-boot-camel-amq
Customize the client credentials for logging on to the broker, by setting the
ACTIVEMQ_BROKER_USERNAME
andACTIVEMQ_BROKER_PASSWORD
environment variables. In thefuse74-spring-boot-camel-amq
project, edit thesrc/main/fabric8/deployment.yml
file, as follows:spec: template: spec: containers: - resources: requests: cpu: "0.2" # memory: 256Mi limits: cpu: "1.0" # memory: 256Mi env: - name: AMQP_HOST value: broker-amq-amqp - name: SPRING_APPLICATION_JSON value: '{"server":{"undertow":{"io-threads":1, "worker-threads":2 }}}' - name: AMQP_USERNAME value: admin - name: AMQP_PASSWORD value: admin
Run the
mvn
command to deploy the quickstart to OpenShift server.mvn fabric8:deploy -Popenshift
To verify that the quickstart is running successfully:
- Navigate to the OpenShift console.
- Select the project amq-quickstart.
- Click Applications.
- Select Pods.
- Click fis-spring-boot-camel-am-1-xxxxx.
Click Logs.
The output shows the messages are sent successfully.
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
- To view the routes on the web interface, click Open Java Console and check the messages in the A-MQ queue.