这篇“rabbitMQ的发布模式怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“rabbitMQ的发布模式怎么实现”文章吧。
生产者声明两个队列和一个扇出交换机,并将两个队列绑定到交换机
开关有四种类型:fanout、direct、topic和header(文末有介绍)
导入 com.example.rabbitmq.constant.RabbitConstant; 导入 org.springframework.amqp.core.*; 导入 org.springframework.context.annotation.Bean; 导入 org.springframework.context.annotation.Configuration;@Configuration公共类 RabbitPublishSubscribeProvider { @Bean 公共队列 pubsubQueueFirst() { return new Queue(RabbitConstant.PUBLISH_SUBSCRIBE_FIRST_QUEUE_NAME); } @Bean 公共队列 pubsubQueueSecond() { return new Queue(RabbitConstant.PUBLISH_SUBSCRIBE_SECOND_QUEUE_NAME); } @Bean 公共 FanoutExchange fanoutExchange() { // 创建扇出类型开关,表示交换机会向所有绑定队列发送消息 return new FanoutExchange(RabbitConstant.PUBLISH_SUBSCRIBE_EXCHANGE_NAME); } @Bean public Binding pubsubQueueFirstBindFanoutExchange() { // 队列绑定开关 return BindingBuilder.bind(pubsubQueueFirst()).to(fanoutExchange()); } @Bean public Binding pubsubQueueSecondBindFanoutExchange() { // 队列二绑定开关 return BindingBuilder.bind(pubsubQueueSecond()).to(fanoutExchange()); } }
消费者监听队列并消费
导入 com.example.rabbitmq.constant.RabbitConstant; 导入 org.springframework.amqp.rabbit.annotation.RabbitHandler; 导入 org.springframework.amqp.rabbit.annotation.RabbitListener; 导入 org.springframework.stereotype.Component; @Component public class RabbitPublishSubscribeConsumer { @RabbitListener(queues = RabbitConstant.PUBLISH_SUBSCRIBE_FIRST_QUEUE_NAME) @RabbitHandler public void pubsubQueueFirst(String context) { System.out.println("rabbit pubsub queue first receiver:" + context); } @RabbitListener(queues = RabbitConstant.PUBLISH_SUBSCRIBE_SECOND_QUEUE_NAME) @RabbitHandler public void pubsubQueueSecond(String context) { System.out.println("rabbit pubsub 队列第二个接收者:" + context); } }
单元测试
@Test public void pubsub() { rabbitTemplate.convertAndSend(RabbitConstant.PUBLISH_SUBSCRIBE_EXCHANGE_NAME, null, "发布/订阅你好"); }
响应结果
以上就是关于“rabbitMQ的发布模式怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。