我是靠谱客的博主 单纯海燕,最近开发中收集的这篇文章主要介绍Springboot集成RabbitMQ之主题模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

主题转发模式

生产者
交换机 topic
消息队列
消息队列
消费者
消费者
  1. 添加依赖
 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  1. 添加RabbitMQ属性
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
  1. 配置两个队列 topic.a 与 topic.b

@Bean
public Queue top_a(){
return new Queue("topic.a");
}
@Bean
public Queue top_b(){
return new Queue("topic.b");
}
  1. 配置主题交换机 topicExchange
	@Bean
TopicExchange exchange(){
return new TopicExchange("topicExchange");
}
  1. 把队列(topic.a,topic.b)绑定到主题交换机(topicExchange)上,并设置routing key
	@Bean
Binding bindingExchangeMessage(Queue top_a,TopicExchange exchange){
// routing key 为 topic.a
return BindingBuilder.bind(top_a).to(exchange).with("topic.a");
}
@Bean
Binding bindingExchangeMessages(Queue top_b,TopicExchange exchange){
// routing key 为 topic.# , #代表模糊匹配零个或更多的单词
return BindingBuilder.bind(top_b).to(exchange).with("topic.#");
}
  1. 创建两个接收者,绑定创建的两个队列
@Component
@RabbitListener(queues = "topic.a")
public class TopicReceiverA {
@RabbitHandler
public void process(String msg){
System.out.println("接收A:"+msg);
}
}
@Component
@RabbitListener(queues = "topic.b")
public class TopicReceiverB {
@RabbitHandler
public void process(String msg){
System.out.println("接收B:"+msg);
}
}
  1. 创建个发送方法用来发送消息
 @Component
public class TopicSender {
@Autowired
private AmqpTemplate amqpTemplate;
public void send(String exchange,String queue,String context){
this.amqpTemplate.convertAndSend(exchange,queue,context);
}
}
  1. 发送测试数据 , topic.1 与 topic.b的routing key(topic.#) 匹配 ,所以topic.b接收消息
topicSender.send("topicExchange","topic.1","hello");
//运行结果: 接收B:hello
  1. 发送测试数据 , topic.a 与 topic.b的routing key(topic.#) 和 topic.a的 routing key(topic.a) 都匹配,所以都接收消息
 topicSender.send("topicExchange","topic.a","hello");
//运行结果: 接收A:hello 接收B:hello

最后

以上就是单纯海燕为你收集整理的Springboot集成RabbitMQ之主题模式的全部内容,希望文章能够帮你解决Springboot集成RabbitMQ之主题模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部