快速集成互连/QPID调度路由器与AMQ 7。

在本文中,我们将学习如何将QPID调度路由器或互连集成到AMQ 7或ApacheActivemqArtemis中。我们将了解连接到AMQ 7代理的互连的基本路由器配置。互连也称为ApacheQPID调度路由器或简单的调度路由器。

我们有一个码头工人QPID调度路由器图像。此Docker映像仅用于测试路由器配置。QPID调度路由器是作为一组rpms提供的,安装起来可能比较困难。我不建议在生产环境中使用这个Docker形象,因为它还没有企业准备好。然而,应该有一种方法,开发人员和QE团队可以测试路由器配置,而不深入安装过程。它也不应该是特定于操作系统的。使用Docker映像,您可以在几秒钟内直接旋转具有不同路由器配置的多个路由器容器。而且,它与操作系统无关。我可以使用Ubuntu或CentOS、Fedora或其他Linux版本运行此Dispatch路由器,而无需安装任何软件,这可能会给初学者带来麻烦。

我们使用Dispatch路由器的一个主要好处是,与代理的连接较少。客户端只使用AMQP协议与调度路由器通信,客户端不知道只与代理通信。因此,与代理的连接较少。此外,调度路由器提供高可用性,这意味着如果我们有多个调度路由器连接在一个拓扑,即使其中一个调度路由器是关闭的,另一个调度路由器将继续处理流量。

下面是连接到AMQ 7代理的独立调度路由器应该遵循的步骤。

建立并启动AMQ 7

我们可以下载和安装AMQ 7ApacheActiveMQ Artemis. Here, make sure that amqp port of AMQ7 broker instance is different than Dispatch Router. I changed the AMQ7 instance amqp port to 5673 so that it doesn't conflict with amqp port of Dispatch Router. It can be changed within AMQ7_Instance/etc/broker.xml

创建和建立码头形象

(A)让我们在以下基础上创建一个码头形象CEPOTA/QDR码头形象。我将这个docker文件命名为DockerFile_QDR。我们还在安装sasl-平原插件,这样我们就可以通过普通凭证从路由器访问AMQ 7代理。

FROM ceposta/qdr
RUN yum -y install cyrus-sasl-plain

b)从Docker文件生成Docker映像。

docker build -t qdr/saslplain -f ./DockerFile_QDR .

设置路由器配置

您可以在以下位置找到完整的路由器配置:我个人的GitHub链接。

此文件中的重要部分是路由器、地址、侦听器、连接器。更多细节这里.

<strong>router</strong>: Attribute mode is set to standalone, which means it acts as a single node and doesn't cooperate with other routers.

<strong>address</strong>: Here foo is the address or destination.

<strong>listener</strong>: Router accepts amqp messages on port 5672.

<strong>autolink</strong>: Here dir with value In means into the router, out means out of the router. Also, addr is set as foo.

<strong>connector</strong>: Configuration here connect router to broker. We have set saslMechanisms as plain so that user can be authenticated in broker.

使用路由器配置运行Docker映像

下面是我们使用鈥�Net=“host”的几个要点,以便Docker容器能够看到AMQ 7在主机上运行。其次,我们正在将路由器安装到Broker.conf,即路由器配置。

docker run --net="host" -it --rm --name qdr -p 5672:5672 -v /home/chandrashekhar/Development/DockerFiles/qpid-proton/router-to-broker.conf:/etc/qpid-dispatch/qdrouterd.conf qdr/saslplain

向调度路由器发送AMQP消息并检查AMQ 7代理中的统计信息

借助AMQ 7的bin文件夹或Artemis Broker实例中可用的AMQ 7脚本,我们可以生成和浏览消息。在这里,我们可以发现消息被发送到Dispatch路由器,即URL tcp:/localhost:5672,协议设置为AMQP。但是,我们正在浏览AMQ 7上的消息,监听61616端口。

./artemis producer --url tcp://localhost:5672 --message-count 1 --destination foo --protocol amqp --text-size 50
./artemis browser --url tcp://localhost:61616 --user admin --password admin --destination foo

ApacheQPID调度路由器统计分析

有一个与qdstat命令不同的开关来查看路由器统计信息。

-c,-连接显示连接

-L,-链接显示路由器链接

-n,-节点显示路由器

-A,-地址显示路由器地址

$ docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

e32798a88ee9 qdr/saslplain "/usr/sbin/qdrouterd鈥�" 2 minutes ago Up 2 minutes

$ docker exec e32798a88ee9 qdstat -c

$ docker exec e32798a88ee9 qdstat -l

$ docker exec e32798a88ee9 qdstat -a

就这样我相信本文将帮助您从ApacheQPID调度路由器开始。在下一篇文章中,我们将建立多个ApacheQPID调度路由器,以提供AMQ 7的高可用性。


猜你喜欢

转载自blog.51cto.com/14009535/2310368