SpringAMQP交换机:Direct
DirectExchange会将接收到的消息根据规则路由到指定的Queue,因此称为路由模式
每一个Queue都与Exchange设置一个BindingKey,可以绑定多个
发布者发送消息时候,指定消息的RoutingKey
Exchange将消息路由到BindingKey和RoutingKey一致的队列
实现思路:
1.利用@RabbitListener声明exchange queue RoutingKey
@RabbitListener(bindings = @QueueBinding( value = @Queue(name = "direct.queue1"), exchange = @Exchange(name = "itcast.direct", type = ExchangeTypes.DIRECT), key = {"red","blue"} )) public void listenDirectQueue1(String msg){ System.err.println("1接收到direct.queue1:【"+msg+"】"); } @RabbitListener(bindings = @QueueBinding( value = @Queue(name = "direct.queue2"), exchange = @Exchange(name = "itcast.direct", type = ExchangeTypes.DIRECT), key = {"red","yellow"} )) public void listenDirectQueue2(String msg){ System.err.println("2接收到direct.queue2:【"+msg+"】"); }
2.在consumer服务中,编写两个消费者方法,在listener中分别监听direct.queue1 和direct.queue2
3.在publisher中编写测试方法,向itcast.direct发送消息
@Test public void testSendDirctMessage(){ String exchangeName = "itcast.direct"; String message = "hello, blue"; rabbitTemplate.convertAndSend(exchangeName,"blue", message); }

浙公网安备 33010602011771号