一 交换机类型
像之前的直接发队列那种方式是不行的,比如我举个例子
就像支付一样,如果我支付成功,然后这时候就要通知订单模块,积分模块。订单模块修改订单状态,支付模块增加积分,像之前那个直接发送队列,比如订单模块消费后,积分模块是没法在此消费的,所有需要通过交换机来实现。
二 Fanout交换机
这种模式就相当于相当于广播模式,我发一条消息到这个交换机,然后他通过广播模块,发送到每一个队列,消费者监听其中一个队列,就能接受到消息
java代码如何实现
一 首先在控制台上创建2个队列
二 然后创建交换机,并且类型是广播模式的
三 用java代码在消费端监听队列 创建MqFanoutTest类
四 创建springAmqpFanoutTest
rabbitTemplate.convertAndSend(exchangeName,null,meg);
这个方法是重载,第一个参数是交换机,第二个参数其实是路由,第二个参数是消息
我们的交换机和队列没有通过路由进行绑定,所有第二个参数可以设置null
这是最终的结果
如果用代码绑定它的交换机是FanoutExchange