这篇“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的发布模式怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。