rabbitMQ理解
以一个例子开始。
A微服务向B微服务发送数据,等B收到A的数据处理后再向A响应数据,A收到数据并展示。
实现过程
A微服务把消息发送到B微服务监听的队列里面,B微服务监听到队列有了数据,处理数据,处理完向A微服务监听的队列发送数据,最后A微服务从监听的队列取出数据进行处理巴拉巴拉。。
交换机Exchange和队列Queue分析
//基础定义:交换机定义为exchange.A,exchange.B.队列定义为queue.A和queue.B。路由规则定义为key.A和key.B.
//A应用从A队列收数据。
channel.basicConsume("queue.A",true,deliverCallback,consumerTag -> {});
//向B交换机发送数据,路由规则B
channel.basicPublish("exchange.B","key.B",null,messageToSend.getBytes());
//B应用从B队列收数据。
channel.basicConsume("queue.B", true, deliverCallback, consumerTag -> {});
//向A交换机发送数据,路由规则A
channel.basicPublish("exchange.B","key.A",null,messageToSend.getBytes());
B应用涉及到两种路由规则,A.key路由规则把处理好的数据投放给A队列A.queue,B.key是方便读取B.queue的数据做处理。
不知道有没有绕,我是觉得比较绕所以才来记录一哈方便理解~