docker方式的:
docker pull rabbitmq:management 这样带有management的是带有web界面的
linux上安装:
此处参考的使本地的目录:C:\Users\惜听\Documents\百度网盘\微服务\rabbitmq\软件
和 C:\Users\惜听\Documents\百度网盘\微服务\rabbitmq\笔记
对于C:\Users\惜听\Documents\百度网盘\微服务\rabbitmq\软件:
把这两个.rpm包传输到linux的:/opt/software下。
然后按照下面进行配置:
1.安装文件(分别按照以下顺序安装),建议一行一行执行
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
yum install socat -y
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
2.常用配置:
chkconfig rabbitmq-server on
/sbin/service rabbitmq-server start
/sbin/service rabbitmq-server status
/sbin/service rabbitmq-server stop
rabbitmq-plugins enable rabbitmq_management
解决办法:
3.添加一个新的用户
创建账号(此处admin admin。第一个是账号,第二个是密码,这两个是随便写的,你写zhangsan 123 也可以)
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限(这是必须有的)
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
显示当前用户和角色
rabbitmqctl list_users
4.再次利用 admin 用户登录
5.重置命令
rabbitmqctl stop_app
rabbitmqctl reset
重新启动命令为
rabbitmqctl start_app
上述实现代表已安装配置成功!
再次访问:linux的ip地址:15672/
进入下列界面。
下面是对界面作用的阐述。
上面的界面是对用户密码的添加修改等 。
交换机有上面默认的几种
添加交换机。
Name为交换机的名字。
Type为单播,广播等
Durability:为是否持久化,Durable为持久化,rabbitmq重启那么交换机还在。否则不存在
选择下列选项后添加交换机:
之后显示下面界面
再添加下面的交换机:exchange.fanout和exchange.topic
最后的交换机如下:
消息队列界面如下:
添加消息队列的演示如下:
最后添加了这几个队列:
交换机和队列要工作,需要进行绑定关联。接下来切换到交换机界面
然后点击exhange.direct,进入下列界面
点击Bindings见如下界面:
上述界面中输入:
并点击Bind绑定,之后见如下界面:由下图可见交换机exchange.direct绑定上了队列atguigu,且routing key也为atguigu
继续绑定如下交换机和消息队列:
之后在exchange中选定exchange.fanout从而绑定其他消息队列,结果如下:对于fanout,其routing key绑定不绑定其实无所谓的
之后在exchange中选定exchange.topic从而绑定其他消息队列,结果如下:
上述对于交换机和队列的绑定已完成
下面进行测试:进入下述界面
上述界面中输入:在交换机发布信息中通过routing key找到queue
点击添加后到queue中可见到:
然后点击atguigu进入,然后进入下列界面:
点击Get message,见到下述界面:
我们Publish时选定了一个,Queue也只有一个收到了,这就是点对点,单播模式。
下面测试fanout,fanout绑定的所有队列,不管其路由键routing key是什么,都能收到信息。
进入下属界面
在上面的界面中输入:
然后发布信息,进入Queue中见到:
由此可见,fanout测试成功。
下面测试topic类型,进入下面的界面:
输入下面的数据:
此时注意下面的绑定规则,可知全会匹配到会收到信息:因为routing key为atguigu.news ,从下面可知这些都符合
发布信息后,点击Queue查看:
对于topic我们换一个routing key测试:
发布后,见下面界面:
取消息测试:重复获取消息发现还是这个
原因:有这几种模式
下面选择第二个:连续获取几次消息,发现获得的不同。
重复获取几次后再次获取显示为空。
单播为完全匹配路由键模式,路由键是什么就根据对应的路由键发给哪个队列,广播不考虑路由键,topic为根据路由键匹配规则发送,可以认为是单播为广播的中间版本。