fanout广播模型,只要生产者一发送,交换机会把所有的消息发给所有的广播者。在广播模式中,一条消息会被所有订阅的队列都消费,但是在某种场景下,我们希望不同的消息被不同的队列消费。这时候就要用到direct的类型的交换机。
direct类型的的交换机,它的核心作用就是不同的消息可以被不同消费者消费,同时我们也可以让所有的消费者去消费这一个消息,生产者向交换机发消息,不能单纯的再发消息了,我在发消息的同时还要指定一个路由key,我们可以通过路由key的不同去决定我们的消息可以被哪些消费者消费。
生产者:
public class Provider {
public static void main(String[] args) throws IOException {
Connection connection = RabbitMQUtils.getConnection();
Channel channel = connection.createChannel();
//通道声明指定的交换机 参数1:交换机名称 参数2:交换机类型 fanout广播类型
// 在交换机不存在的时候创建这个logs交换机
channel.exchangeDeclare("topics_direct","direct");
String routingKey = "info";
channel.basicPublish("topics_direct",routingKey,null,("这是Topics模型发布的,基于route——key").getBytes());
RabbitMQUtils.closeConnectionAndChanel(channel,connection);
}
}
本文转载自: https://blog.csdn.net/weixin_53676834/article/details/136638702
版权归原作者 明日春风 所有, 如有侵权,请联系我们删除。
版权归原作者 明日春风 所有, 如有侵权,请联系我们删除。