rabbitmq简介
rabbitmq是一个开源的amqp实现,服务器端用erlang语言编写,支持多种客户端,如:python、ruby、.net、java、jms、c、php、actionscript、xmpp、stomp等,支持ajax。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
amqp,即advanced message queuing protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
amqp的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
注意事项
centos 7.x 关闭firewall
?
1 |
|
不想关闭防火墙,就开放15672端口,设置之后可以通过网页方式管理mq
安装安装iptables防火墙
?
1 |
|
添加配置
?
1 2 |
|
保存配置
?
1 |
|
重启
?
1 |
|
设置开机自启动
?
1 |
|
安装
安装 erlang
rabbitmq 安装需要依赖 erlang 环境
?
1 2 3 |
|
安装 rabbitmq
?
1 2 3 |
|
启动服务
?
1 |
|
服务状态
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
查看日志
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
这里显示的是没有找到配置文件,我们可以自己创建这个文件
?
1 |
|
创建rabbitmq.config
?
1 2 |
|
编辑内容如下:
?
1 |
|
这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。
保存配置后重启服务
?
1 |
|
开启管理ui
?
1 |
|
重启服务
?
1 |
|
访问管理ui
通过 http://ip:15672 使用guest, guest 进行登陆了.
授权操作
添加用户
处于安全的考虑,guest这个默认的用户只能通过http://localhost:15672 来登录,其他的ip无法直接使用这个账号。 这对于服务器上没有安装桌面的情况是无法管理维护的,除非通过在前面添加一层代理向外提供服务,这个又有些麻烦了,这里通过配置文件来实现这个功能
命令格式
?
1 2 3 |
|
删除用户
?
1 2 3 |
|
修改密码
?
1 2 3 |
|
用户授权
?
1 |
|
该命令使用户zhdya /(可以访问虚拟主机) 中所有资源的配置、写、读权限以便管理其中的资源
?
1 2 |
|
查看用户授权
?
1 2 3 4 5 |
|
查看当前用户列表
可以看到添加用户成功了,但不是administrator角色
?
1 2 3 4 |
|
添加角色
这里我们也将ymq用户设置为administrator角色
命令格式
?
1 2 3 |
|
再次查看权限
?
1 2 3 4 |
|
清除权限信息
?
1 2 3 |
|
官方文档
安装:
访问控制:
网络:
配置:
集群:
命令:
web 界面
添加用户
鼠标点击,划红线的角色,选择一种
rabbitmq的用户角色分类:
none、management、policymaker、monitoring、administrator
rabbitmq各类角色描述:
none
management
policymaker
monitoring
administrator
设置权限
该用户无权访问任何虚拟主机
点击 用户名 set permission
设置可以访问虚拟主机 中所有资源的配置、写、读权限以便管理其中的资源
至此rabbitmq单机服务已经完全搭建完毕,下面来操作单机多实例:
rabbitmq 单机多实例
其实在操作前我在网上看到了很多这种方案,多数为如下:
?
1 2 3 |
|
不过我觉得对于新人来说过于简陋和不负责任!!!
第一个节点
下面指定了特定hostname启动的,当然你也可以指定 为localhost。
?
1 2 3 4 |
|
启动第一个节点
?
1 |
|
第二个节点
?
1 2 |
|
你可能发现不了什么,假如你去掉-detached 你会发现,最后你得到了一个这样的错误信息:崩溃了的信息。。。
?
1 |
|
往上翻信息或者查看日志,你会看到这样的提示:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
启动第二个节点
?
1 2 |
|
查看端口:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
查看rabbit1的状态:
?
1 2 |
|
第三个节点
?
1 2 |
|
启动第三个节点
?
1 2 |
|
查看rabbit2的状态:
?
1 2 |
|
查看启动状态:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
这样的话你可以通过:http://192.168.161.161:15672/#/,http://192.168.161.161:15673/#/ ,http://192.168.161.161:15674/#/ 访问web查看相关节点是否真的存在。下面就是如何实现集群操作了。
集群操作
把节点rabbit1 加入 rabbit中
1.停止第二个节点的应用程序
?
1 |
|
2.重新设置第二个节点的元数据和状态为清空状态。
?
1 |
|
3.加入第一节点
?
1 |
|
4.重新启动第二节点
?
1 |
|
现在再次登陆web界面你可以到web端看到集群已经存在了!!!
把节点rabbit2 加入 rabbit中
同如上步骤的1234:其中注意点是,如果你需要设置第三个集群节点为内存模式,而非磁盘模式,可以参考当前版本的命令提示,在最后加上 –ram 参数
添加第三节点的完整命令
?
1 2 3 4 |
|
注意:如上第三步,如果你要设置第三个集群节点为内存模式,而非磁盘模式,那就需要 --ram
?
1 |
|
查看集群状态
?
1 2 3 4 5 6 7 8 9 10 11 12 |
|
到web端看下效果吧!!!
至此,集群搭建完毕。
遇到的问题:
rabbitmq在安装后可能会出现无法启动,如:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
解决办法
?
1 |
|
在文件中写入“nodename=rabbit@localhost”
,保存。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://www.okay686.cn/968.html
本文链接:https://my.lmcjl.com/post/6929.html
4 评论