RabbitMQ消息队列

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.常用配置:

        添加开机启动 RabbitMQ 服务
chkconfig rabbitmq-server on
        启动服务
/sbin/service rabbitmq-server start
        查看服务状态
/sbin/service rabbitmq-server status
        停止服务( 选择执行 )
/sbin/service rabbitmq-server stop
        开启 web 管理插件
rabbitmq-plugins enable rabbitmq_management
        用默认账号密码(guest,guest) 访问地址:
         linux的ip地址:15672/
        出现权限问题。情况如下。

        

解决办法:

3.添加一个新的用户

        创建账号(此处admin admin。第一个是账号,第二个是密码,这两个是随便写的,你写zhangsan 123 也可以)

rabbitmqctl add_user admin 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为根据路由键匹配规则发送,可以认为是单播为广播的中间版本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值