springboot消息之利用docker安装rabbitmq并测试三种模式
1、安装rabbitmq
还是利用之前安装好的docker进行安装。
sudo docker pull rabbitmq:3-management
sudo docker run --name rabbitmq01 -p 5672:5672 -p 15672:15672 -d rabbitmq:3-management
sudo docker ps -a
安装完成后在浏览器输入:虚拟机系统ip地址:15672即可访问到rabbitmq界面:输入默认账户:guest,密码:guest
2、建立交换器
选择exchanges, 选择Add a new exchange:
点击添加之后会看到:
3、添加消息队列
选择Queues,选择Add a new queue
只需要更改名字,其余默认即可。依次添加gong、gong.news、gong.emps、dema.news ,完成后可以看到:
4、将交换器和队列进行绑定
点击刚才我们创建好的交换器,例如选择exchange.direct:
找到bindings,然后进行设置:
依次将那四个队列进行绑定,名字和Routing Key都一致就行。完成之后可以看到
同理将exchange.fanout也绑定这四个队列。
对于exchange.topic,我们就需要指定了。
5、发送消息
点击Exchanges,选择exchange.direct交换器,找到Publish Message
发送即可。由于direct模式是完全匹配,所以只有Routing key=gong的队列收到消息:
点击gong进去看看,找到Get messages:
再来测试fanout模式:不管你指定的Routing key是什么,都会发送给所有队列:
最后来测试topic模式,其会根据匹配规则进行发送。
收到以gong开头的,或者以news结尾的,也就是所有队列都可以收到。假设我们发送的Routing key是hello.news,那么,只有gong.news和dema.news的队列收到消息。具体direct、fanout、topic之间的区别可以去看之前的博客。