Java创建队列与交换机

Java创建队列与交换机

一、普通Maven项目

    交换机、队列创建及绑定
//1. 声明队列-HelloWorld
//参数1:queue - 指定队列的名称
//参数2:durable - 当前队列是否需要持久化(true)
//参数3:exclusive - 是否排外(conn.close() - 当前队列会被自动删除,当前队列只能被一个消费者消费)
//参数4:autoDelete - 如果这个队列没有消费者在消费,队列自动删除
//参数5:arguments - 指定当前队列的其他信息
channel.queueDeclare("HelloWorld",true,false,false,null);

//2. 创建exchange - 绑定某一个队列
//参数1: exchange的名称
//参数2: 指定exchange的类型  FANOUT - pubsub ,   DIRECT - Routing , TOPIC - Topics
channel.exchangeDeclare("pubsub-exchange", BuiltinExchangeType.FANOUT);
channel.queueBind("pubsub-queue1","pubsub-exchange","");
channel.queueBind("pubsub-queue2","pubsub-exchange","");

二、SpringBoot Java配置管理

    置RabbitMQ创建队列(Queue)
@Configuration
public class RabbitMQConfiguration {
          
   

    //声明队列
    @Bean
    public Queue queue9() {
          
   
        return new Queue("queue9");
    }

    @Bean
    public Queue queue10() {
          
   
        return new Queue("queue10");
    }

    //声明交换机, fanout类型
    @Bean
    public FanoutExchange fanoutExchange() {
          
   
        FanoutExchange fanoutExchange = new FanoutExchange("fanoutExchange");
        return fanoutExchange;
    }

    //明交换机, direct类型
    @Bean
    public DirectExchange directExchange() {
          
   
        DirectExchange directExchange = new DirectExchange("directExchange");
        return directExchange;
    }

    //将队列和交换机绑定
    @Bean
    public Binding bindingQueue9(Queue queue9, FanoutExchange fanoutExchange) {
          
   
        return BindingBuilder.bind(queue9).to(fanoutExchange);
    }

    //将队列和交换机绑定,并指定key
    @Bean
    public Binding bindingQueue10(Queue queue10, DirectExchange directExchange) {
          
   
       return BindingBuilder.bind(queue10).to(directExchange).with("k1");
    }

}
经验分享 程序员 微信小程序 职场和发展