AMQP创建交换机和队列的两种方式

配置类方式:

定义队列和交换机 

@Configuration
public class RabbitConfig {
    //队列一
    @Bean
    public Queue fanoutQueue1(){
        return new Queue("fanout.queue1");
    }

    //队列二
    @Bean
    public Queue fanoutQueue2(){
        return new Queue("fanout.queue2");
    }

    //Fanout交换机
    @Bean
    public FanoutExchange itcastFanout(){
        return new FanoutExchange("itcastFanout");
    }

    //队列fanoutQueue1绑定交换机itcastFanout
    @Bean
    public Binding queue1Exchange(Queue fanoutQueue1, FanoutExchange itcastFanout){
        return BindingBuilder.bind(fanoutQueue1).to(itcastFanout);
    }

    //队列fanoutQueue2绑定交换机itcastFanout
    @Bean
    public Binding queue2Exchange(Queue fanoutQueue2,FanoutExchange itcastFanout){
        return BindingBuilder.bind(fanoutQueue2).to(itcastFanout);
    }
}

 监听

//============fanout==================

@RabbitListener(queues = "itheima.fanout.queue1")
public void fanConsumer(String message) throws InterruptedException {
    System.out.println(2222);
    Thread.sleep(5000);
    System.out.println("收到的消息fan1:"+message);
}

@RabbitListener(queues = "itheima.fanout.queue2")
public void fanConsumer2(String message){
    try {
        Thread.sleep(200);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println("收到的消息fan2:"+message);
}

 注解方式:

直接创建交换机和队列以及监听

@RabbitListener(bindings = {
        @QueueBinding(
                value = @Queue(name="itheima.fanout.queue1",durable = "true"),
                exchange = @Exchange(name = "itcastFanout",type = ExchangeTypes.FANOUT)
        )
})
public void fanoutConsumer(String message){
    try {
        Thread.sleep(200);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println("itheima.fanout.queue1收到的消息:"+message);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值