SpringBoot-RabbitMQ05-交换器【fanout】介绍-阿里云开发者社区

开发者社区> 游客a74jvhcp7vclg> 正文

SpringBoot-RabbitMQ05-交换器【fanout】介绍

简介: FanoutExchange 的数据交换策略是把所有到达 FanoutExchang 的消息转发给所有与它绑定的Queue ,在这种策略中, routingkey 将不起任何作用.
+关注继续查看



交换器介绍

 RabbitMQ中有三种主要的交互器分别如下

image.png

Fanout

 FanoutExchange 的数据交换策略是把所有到达 FanoutExchang 的消息转发给所有与它绑定的Queue ,在这种策略中, routingkey 将不起任何作用.

image.pngimage.png

1.创建消费者

项目结构

image.png

配置文件

spring.application.name=springcloud-mq
spring.rabbitmq.host=192.168.88.150
spring.rabbitmq.port=5672
spring.rabbitmq.username=dpb
spring.rabbitmq.password=123

mq.config.exchange=order.fanout
#短信服务队列名称
mq.config.queue.sms=order.sms
#push 服务队列名称
mq.config.queue.push=order.push

两个消费者

@Component
@RabbitListener(
bindings=@QueueBinding(
        value=@Queue(value="${mq.config.queue.sms}",autoDelete="true"),
                exchange=@Exchange(value="${mq.config.exchange}",type= ExchangeTypes.FANOUT)
        )
)
public class SmsReciver {
    /**
     * 接收消息的方法。采用消息队列监听机制
     * @param msg
     */
    @RabbitHandler
    public void process(String msg){
         System.out.println("Sms........receiver: "+msg);
    }
}
@Component
@RabbitListener(
bindings=@QueueBinding(
        value=@Queue(value="${mq.config.queue.push}",autoDelete="true"),
                exchange=@Exchange(value="${mq.config.exchange}",type= ExchangeTypes.FANOUT)
        )
)
public class PushReciver {
    /**
     * 接收消息的方法。采用消息队列监听机制
     * @param msg
     */
    @RabbitHandler
    public void process(String msg){
         System.out.println("Push........receiver: "+msg);
    }
}

启动后等待接收消息即可~

2.创建订单服务

项目结构

image.png

配置文件

spring.application.name=springcloud-mq
spring.rabbitmq.host=192.168.88.150
spring.rabbitmq.port=5672
spring.rabbitmq.username=dpb
spring.rabbitmq.password=123
#设置交换器的名称
mq.config.exchange=order.fanout

服务提供者

/**
 * @program: rabbitmq-direct-provider
 * @description: 发送者
 * @author: 波波烤鸭
 * @create: 2019-05-22 15:51
 */
@Component
public class Sender {
    @Autowired
    private AmqpTemplate rabbitAmqpTemplate;
    //exchange 交换器名称
    @Value("${mq.config.exchange}")
    private String exchange;
    /*
     * 发送消息的方法
     */
    public void send(String msg){
        //向消息队列发送消息
        //参数一:交换器名称。
        //参数二:路由键
        //参数三:消息
        this.rabbitAmqpTemplate.convertAndSend(this.exchange,"", msg);
    }
}

单元测试

@RunWith(SpringRunner.class)
@SpringBootTest(classes = RabbitmqDirectProviderApplication.class)
public class RabbitmqDirectProviderApplicationTests {

    @Autowired
    private Sender sender;

    @Test
    public void contextLoads() throws Exception{
        sender.send("hello .... ");
    }
}

启动后查看消费者的控制台

image.png


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9960 0
【spring boot】11.spring-data-jpa的详细介绍和复杂使用
这篇专门用来对spring-data-jpa的详细介绍和复杂使用做一个阐述。 参考文档:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/
1070 0
智能媒体管理产品“文档标准型”使用介绍
智能媒体管理(Intelligent Media Management, IMM) 是阿里云的云服务,它通过 文档标准型 实例提供了 Cloud Native 架构的文档转换/预览功能,本文介绍功能使用、计费相关的配置。
1876 0
介绍一款超实用的演讲必备工具 ZoomIt
本文同步发表于: http://www.cnblogs.com/AloneSword/archive/2010/07/19/1780408.html 最近在整理以前的文件时,发现躺在某个角落的一个超好的实用的小工具——ZoomIt。
729 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13714 0
TensorFlow新功能:TensorFlow Probability概率编程工具箱介绍
2018年,tensorflow开发者峰会上,tensorflow管理人员发布了:TensorFlow Probability——一种概率编程工具箱,用于机器学习研究人员和从业人员快速可靠地构建利用最先进硬件的复杂模型。快来学习一下吧~
3345 0
SQL Server系统表sysobjects介绍与使用
原文:SQL Server系统表sysobjects介绍与使用   关于SQL Server数据库的一切信息都保存在它的系统表格里。我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格。但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器。
1108 0
SQL2000系统表、存储过程、函数的功能介绍及应用
转自:http://blog.csdn.net/zlp321002/article/details/480925 ----系统表---------------------------------------------------------------------------------------------------- 虽然使用系统存储过程、系统函数与信息架构视图已经可以为我们提供了相当丰富的元数据信息,但是对于某些特殊的元数据信息,我们仍然需要直接对系统表进行查询。
657 0
+关注
游客a74jvhcp7vclg
10余年开发架构经验,同时乐于技术分享!
332
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载