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");
        }
    }
    
    

  • 相关阅读:
    [ZZ]风险驱动的测试
    移动测试书籍推荐
    4月收藏
    Appium路线图及1.0正式版发布
    匿名吐槽和测试小道消息
    文章收藏
    [ZZ]最小化不可重现的bug
    华人世界——客家足迹行
    移动测试会第七期
    2月收藏
  • 原文地址:https://www.cnblogs.com/coderD/p/14263360.html
Copyright © 2011-2022 走看看