设为首页 收藏本站

运维网

查看: 27|回复: 0

[经验分享] centos7 rabbitmq集群创建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2018-11-1 17:46:35 | 显示全部楼层 |阅读模式
下载
http://www.rabbitmq.com/releases ... 7.centos.x86_64.rpm
https://dl.bintray.com/rabbitmq/ ... 12-1.el7.noarch.rpm

三节点IP
192.168.22.177
192.168.22.178
192.168.22.179

# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

修改三个节点的/etc/hosts文件,把三个节点IP和对应的主机名分别写入三个节点的文件中。

1、安装
三个节点安装
# rpm -ivh erlang-19.0-1.el7.centos.x86_64.rpm

# rpm -ivh rabbitmq-server-3.6.12-1.el7.noarch.rpm
warning: rabbitmq-server-3.6.12-1.el7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
        socat is needed by rabbitmq-server-3.6.12-1.el7.noarch

# yum install socat

# rpm -ivh rabbitmq-server-3.6.12-1.el7.noarch.rpm

启动服务
# rabbitmq-server -detached

查看状态
# rabbitmqctl status

列出插件
# rabbitmq-plugins list

开启页面管理插件
# rabbitmq-plugins enable rabbitmq_management

2、创建集群
保持三个节点.erlang.cookie文件一致
# find / -name "*.erlang.cookie*"
/var/lib/rabbitmq/.erlang.cookie

# ll /var/lib/rabbitmq/.erlang.cookie
-r-------- 1 rabbitmq rabbitmq 20 Oct 24 00:00 /var/lib/rabbitmq/.erlang.cookie

将177作为主节点,拷贝177上的.erlang.cookie文件到另外两个节点的/var/lib/rabbitmq目录下
并修改拷贝后的文件权限
# chown rabbitmq:rabbitmq .erlang.cookie

178、179两个节点
杀掉rabbitmq的进程
# kill -9

把节点加入集群
# rabbitmq-server -detached

关闭应用
# rabbitmqctl stop_app

加入集群
# rabbitmqctl join_cluster rabbit@rabbitmq-server1

启动应用
# rabbitmqctl start_app


177节点查看
# rabbitmqctl cluster_status
Cluster status of node 'rabbit@rabbitmq-server1'
[{nodes,[{disc,['rabbit@rabbitmq-server2','rabbit@rabbitmq-server3',
                'rabbit@rabbitmq-server1']}]},
{running_nodes,['rabbit@rabbitmq-server3','rabbit@rabbitmq-server2',
                 'rabbit@rabbitmq-server1']},
{cluster_name,<<"rabbit@rabbitmq-server1">>},
{partitions,[]},
{alarms,[{'rabbit@rabbitmq-server3',[]},
          {'rabbit@rabbitmq-server2',[]},
          {'rabbit@rabbitmq-server1',[]}]}]

3、web管理页面配置         
177创建rabbitmq管理页面管理用户
# rabbitmqctl add_user root Password
# rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
# rabbitmqctl set_user_tags root administrator

可以使用用户root通过浏览器登录web管理界面http://192.168.22.177:15672

在web界面,登陆后,点击“Admin--Virtual Hosts(页面右侧)”,在打开的页面上的下方的“Add a new virtual host”处增加一个虚拟主机test,同时给用户“root”和“guest”均加上权限

177上做
# rabbitmqctl set_policy -p test  ha-all "^" '{"ha-mode":"all"}'

"test" vhost名称, "^"匹配所有的队列, ha-all 策略名称为ha-all, '{"ha-mode":"all"}' 策略模式为 all 即复制到所有节点,包含新增节点。

则此时镜像队列设置成功。(这里的虚拟主机test是代码中需要用到的虚拟主机,虚拟主机的作用是做一个消息的隔离,本质上可认为是一个rabbitmq-server,是否增加虚拟主机,增加几个,这是由开发中的业务决定,即有哪几类服务,哪些服务用哪一个虚拟主机,这是一个规划)。

4、安装haproxy
177上安装haproxy
# yum install haproxy

# vi /etc/haproxy/haproxy.cfg

删除60行之后的内容
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
......

添加
listen rabbitmq_local_cluster 0.0.0.0:5670
    mode tcp
    balance roundrobin
    server rabbit1 192.168.22.177:5672 check inter 5000 rise 2 fall 3
    server rabbit2 192.168.22.178:5672 check inter 5000 rise 2 fall 3
    server rabbit3 192.168.22.179:5672 check inter 5000 rise 2 fall 3
listen private_monitoring :8100
    mode http
    option httplog
    stats enable
    stats uri       /stats
    stats refresh 60s
    stats auth admin:admin

# systemctl start haproxy.service

http://192.168.22.177:8100/stats


5、rabbitmq使用的日常命令
启动rabbitmq
rabbitmq-server -detached

查看rabbitmq状态
rabbitmqctl status

节点服务管理
systemctl start rabbitmq-server.service
systemctl stop rabbitmq-server.service
systemctl restart rabbitmq-server.service

添加节点到集群
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@HOSTNAME
rabbitmqctl start_app

查看集群状态
rabbitmqctl cluster_status

添加账号:
rabbitmqctl add_user admin admin
添加 权限tag
rabbitmqctl set_user_tags admin administrator

删除用户(删除guest用户)
rabbitmqctl delete_user guest

修改用户的密码
rabbitmqctl  change_password  Username  Newpassword

查看当前用户列表
rabbitmqctl  list_users

参考:
https://blog.csdn.net/u012062455/article/details/80003763
https://www.cnblogs.com/saneri/p/7798251.html
https://blog.csdn.net/jxdl6655/article/details/78194191
http://www.bubuko.com/infodetail-2710921.html



运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

点击关注更多内容
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则  允许回帖邮件提醒楼主

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服 E-mail:kefu@yunvn.com

本站由青云提供云计算服务

运维网--中国最专业的运维工程师交流社区

京ICP备14039699号-1 Copyright © 2012-2018

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Good good study day day up !


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


独家合作伙伴: 青云cloud

快速回复 返回顶部 返回列表