每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?3分钟?学习?何乐而不为?,希望?大家?点赞?,评论,加?关注?,你的?支持?是我?最大?的?动力?。
先决条件
我们将使用下面的工具来实现这一集成场景。 这是局限于Windows 64位操作系统版本。 RabbitMQ之前安装Erlang是依赖软件。
安装/设置
我们将执行安装和配置RabbitMQ的从一开始,随着依赖。
Erlang安装
一旦Erlang软件下载,按照以下步骤安装它。
RabbitMQ安装
一旦RabbitMQ软件下载,通过以下步骤安装它。
rabbitmq-plugins.bat enable rabbitmq_management
我们完成安装和设置。 这可以通过点击验证http://localhost: 15672(默认凭证:客人/客人)。
登录成功后,集成的目的,创建一个新用户(admin / admin)与专用虚拟主机“MuleIntDev。”
我们完成了对RabbitMQ的安装和配置。
Mule应用程序实现
在这个应用程序中,我们将使用一个AMQP连接器从RabbitMQ发布和订阅消息。 流将发布一个消息交换和另一个流将消耗从队列的消息。
AMQP操作
不同的操作,下面是一个简短的描述。
创建一个新的Mule应用程序后,拖拽 HTTP侦听器 “AMQP”,然后添加模块如下。
现在拖拽 发布 操作到消息流表面。 然后配置AMQP如下。
创建一个交易所RabbitMQ门户如下。
在这之后,创建一个队列的名称”员工。 MuleESB”和绑定此队列“骡子:员工。” 一次 出版商 发布消息的交换,那么同样的信息将被路由到此队列订阅的用户。
现在输入交易名称为“骡子:员工” 发布 操作连接器配置如下。
发布一条消息为RabbitMQ的最终实现使用AQMP协议如下。
现在部署应用程序和测试下面的负载作为一个员工样本有效载荷。
要求:
{ "Employees": [ { "userId": "Test rirani", "jobTitleName": "Developer", "firstName": "Romin", "lastName": "Irani", "preferredFullName": "Test Romin Irani", "employeeCode": "E1", "region": "CA", "phoneNumber": "408-1299967", "emailAddress": "romin.k.test@gmail.com" } ]}
现在,我们可以监视RabbitMQ交换,消息发布到交换,消息的队列状态到达自动进入队列。
现在,拖拽 侦听器 操作到消息流面积来实现 消费 操作。 的 侦听器 会听源配置。 在这种情况下,活跃的消费者将自动创建RabbitMQ一旦应用程序部署。 下面是实现的高级概述。
一旦应用程序部署,消费者会自动创建,如果任何消息到达队列,那么同样的将认购。
正如前面有一个信息,即存在的,同样是选择和加工。 因此,队列变空。
这是全面实施的Mule配置文件。
<?xml version="1.0" encoding="UTF-8"?><mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:amqp="http://www.mulesoft.org/schema/mule/amqp" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsdhttp://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsdhttp://www.mulesoft.org/schema/mule/amqp http://www.mulesoft.org/schema/mule/amqp/current/mule-amqp.xsdhttp://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd"> <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="5f227be9-f9f0-4b70-9177-c065634a9a5d" > <http:listener-connection host="0.0.0.0" port="8081" /> </http:listener-config> <amqp:config name="AMQP_Config" doc:name="AMQP Config" doc:id="a65f4585-2300-42a3-9aac-0e8cdebdc8a6" > <amqp:connection host="localhost" virtualHost="MuleIntDev" username="admin" password="admin" /> </amqp:config> <flow name="employee-rabbitmq-sys-apiFlow" doc:id="6e50b2b8-69a2-47db-9cd9-965076a8a927" > <http:listener doc:name="Listener" doc:id="309df0b7-e8c1-4fe0-a2f4-764f1ba87eef" config-ref="HTTP_Listener_config" path="/api/v1/rabbitmq-demo"/> <logger level="INFO" doc:name="BeforePublish" doc:id="b2316c6f-a0e6-473b-8939-bc3af693e73c" message="**Before Publish Into RabbitMQ**" category="**RabbitMQ**"/> <amqp:publish doc:name="Publish" doc:id="00f1b4c1-1177-4dc9-a843-bbc37a0ab85f" config-ref="AMQP_Config" exchangeName="Mule:Employee"/> <logger level="INFO" doc:name="AfterPublish" doc:id="706ce978-557c-4ba3-ad47-745c24537392" message="**After Publish Into RabbitMQ**" category="**RabbitMQ**"/> <ee:transform doc:name="final_transform" doc:id="52ae715d-ab9c-4cd2-9bde-eb17175e8620" > <ee:message > <ee:set-payload ><![CDATA[%dw 2.0output application/json---{ "status": "Message published successfully"}]]></ee:set-payload> </ee:message> </ee:transform> <error-handler > <on-error-propagate enableNotifications="true" logException="true" doc:name="On Error Propagate" doc:id="567ef1e9-37ec-4215-8640-19b6a51d809f" > <ee:transform doc:name="Transform Message" doc:id="e65e9317-e315-46dd-b4ab-36367a300be8" > <ee:message > <ee:set-payload ><![CDATA[%dw 2.0output application/json---error]]></ee:set-payload> </ee:message> </ee:transform> </on-error-propagate> </error-handler> </flow> <flow name="employee-rabbitmq-sys-apiFlow1" doc:id="52121737-50f5-4def-8a04-3611c6a5f3f1" initialState="stopped"> <amqp:listener doc:name="Listener" doc:id="29358f30-ac13-4c2a-8998-cb0c10ac7c49" config-ref="AMQP_Config" queueName="Employee.MuleESB"/> <logger level="INFO" doc:name="Consumed_Message" doc:id="1c123130-b666-4519-a68a-1c53bfd40ac2" message="#[payload]" category="**RabbitMQ**"/> </flow> <flow name="employee-rabbitmq-sys-apiFlow2" doc:id="c350d2aa-cb56-4252-b1db-8597a846874a" > <amqp:consume doc:name="Consume" doc:id="a8745777-d895-4b7f-98d3-574737d8fb44" config-ref="AMQP_Config" queueName="Employee:MuleESB"/> </flow></mule>
我们完成了 Pub / Sub设计模式 实现。 学习快乐!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!