zoukankan      html  css  js  c++  java
  • rabbitMQ的第三种模型(fanout)

    fanout 扇出 也曾为广播

     

    在广播模式下,消息发送流程是这样的:

    • 可以有多个消费者
    • 每个消费者有自己的queue(队列)
    • 每个队列都要绑定到Exchange(交换机)
    • 生产者发送的消息,只能够发送到交换机,交换机决堤要发送给那个队列,生产者无法决定
    • 交换机把消息发送给绑定过的所有队列
    • 队列的消费者都能拿到消息,实现一条消息被多个消费者消费  

    生产者

    public class Provider {
        public static void main(String[] args) throws IOException {
            Connection connection = rabbitMQUtils.getConnection();
            Channel channel = connection.createChannel();
            //将通道声明指定交换机 //参数1交换机名字 参数2交换机类型 fanout 广播类型
            channel.exchangeDeclare("logs","fanout");
            //发送消息
            channel.basicPublish("logs","",null,"fanout type message".getBytes());
            rabbitMQUtils.connectionAndchannelClose(connection,channel);
    
        }
    }

    消费者(创建多个相同的消费者)

    public class Customer1 {
        public static void main(String[] args) throws IOException {
            Connection connection = rabbitMQUtils.getConnection();
            Channel channel = connection.createChannel();
            //通道绑定交换机
            channel.exchangeDeclare("logs","fanout");
            //临时列队
            String queue = channel.queueDeclare().getQueue();
            //绑定交换机和队列
            channel.queueBind(queue,"logs","");
    
            channel.basicConsume(queue,true,new DefaultConsumer(channel){
                @Override
                public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                    super.handleDelivery(consumerTag, envelope, properties, body);
                    System.out.println("消费者-1"+new String(body));
                }
            });
        }
    }
  • 相关阅读:
    从零开始学VUE3.X-常用模版语法
    从零开始学3.X-生命周期函数
    从零开始学TypeScript-readonly
    从零开始学Typescript-基础类型
    从零开始学Typescript-webpack打包
    探索 .NET Core 依赖注入的 IServiceProvider
    在.NET Core 中使用 FluentValidation 进行规则验证
    盘点大厂的那些开源项目
    探索 .NET Core 依赖注入的 IServiceCollection
    使用 Benchmark.NET 测试代码性能
  • 原文地址:https://www.cnblogs.com/yz-bky/p/13055407.html
Copyright © 2011-2022 走看看