zoukankan      html  css  js  c++  java
  • 基于Java的交换机与队列创建

    一、基于Java的交换机与队列创建

    我们使用消息队列,消息队列和交换机可以通过管理系统完成创建,也可以在应用程序中通过Java代码来完成创建

    1.1 普通Maven项目交换机及队列创建

    • 使用Java代码新建队列

      //1.定义队列 (使用Java代码在MQ中新建一个队列)
      //参数1:定义的队列名称
      //参数2:队列中的数据是否持久化(如果选择了持久化)
      //参数3: 是否排外(当前队列是否为当前连接私有)
      //参数4:自动删除(当此队列的连接数为0时,此队列会销毁(无论队列中是否还有数据))
      //参数5:设置当前队列的参数
      channel.queueDeclare("queue7",false,false,false,null);
      
    • 新建交换机

      //定义一个“订阅交换机”
      channel.exchangeDeclare("ex3", BuiltinExchangeType.FANOUT);
      //定义一个“路由交换机”
      channel.exchangeDeclare("ex4", BuiltinExchangeType.DIRECT);
      
    • 绑定队列到交换机

      //绑定队列
      //参数1:队列名称
      //参数2:目标交换机
      //参数3:如果绑定订阅交换机参数为"",如果绑定路由交换机则表示设置队列的key
      channel.queueBind("queue7","ex4","k1");
      channel.queueBind("queue8","ex4","k2");
      

    1.2 SpringBoot应用中通过配置完成队列的创建

    @Configuration
    public class RabbitMQConfiguration {
    
        //声明队列
        @Bean
        public Queue queue9(){
            Queue queue9 = new Queue("queue9");
            //设置队列属性
            return queue9;
        }
        @Bean
        public Queue queue10(){
            Queue queue10 = new Queue("queue10");
            //设置队列属性
            return queue10;
        }
    
        //声明订阅模式交换机
        @Bean
        public FanoutExchange ex5(){
            return new FanoutExchange("ex5");
        }
    
        //声明路由模式交换机
        @Bean
        public DirectExchange ex6(){
            return new DirectExchange("ex6");
        }
    
        //绑定队列
        @Bean
        public Binding bindingQueue9(Queue queue9, DirectExchange ex6){
            return BindingBuilder.bind(queue9).to(ex6).with("k1");
        }
        @Bean
        public Binding bindingQueue10(Queue queue10, DirectExchange ex6){
            return BindingBuilder.bind(queue10).to(ex6).with("k2");
        }
    }
    
    

  • 相关阅读:
    webrtc系列之-像老鼠一样打洞
    Ubuntu记录用户IP访问操作信息工具
    OPENVIDU实现同一用户同时发布多个流媒体
    如何使用Nginx-rtmp搭建简易的HLS直播系统
    python实现数据库主从状态监控
    简单分析实现运维利器---批量操作bashshell
    《我与Windows Server 2008R2那点事儿》之域控账户故障事件
    常用动态路由协议之IS-IS
    在云服务器上搭建Python开发环境
    基于Python3接口自动化测试开发相关常用方法
  • 原文地址:https://www.cnblogs.com/coderD/p/14263360.html
Copyright © 2011-2022 走看看