说明:以下操作都以三节点集群为例,机器名标记为机器A、机器B、机器C,如果为双节点忽略机器C,如果为各多节点则与机器C操作相同

一、rabbitmq集群必要条件

1.1、绑定实体ip,即ip a所能查询到的绑定到网卡上的ip,以下是绑定方法:

  1. #编辑配置路径 /etc/rabbitmq/rabbitmq-env.conf
  2. 2 NODE_IP_ADDRESS=172.16.136.133
 1.2. 配置域名映射到实体ip
  1. #配置文件1所在路径 /etc/rabbitmq/rabbitmq.config (如果是集群,每台机器都需要修改这个绑定本机实体ip)
  2. #其中rabbit@master是创建集群时所配置的参数,@后面的参数为主机名,示例中为master
  3. [
  4. {rabbit, [
  5. {cluster_nodes, {['rabbit@master'], disc}},
  6. {cluster_partition_handling, ignore},
  7. {default_user, <<"guest">>},
  8. {default_pass, <<"guest">>},
  9. {tcp_listen_options, [binary,
  10. {packet, raw},
  11. {reuseaddr, true},
  12. {backlog, },
  13. {nodelay, true},
  14. {exit_on_close, false},
  15. {keepalive, true}]}
  16. ]},
  17. {kernel, [
  18. {inet_dist_listen_max, },
  19. {inet_dist_listen_min, }
  20. ]}
  21. ].
  1. #配置文件2 所在路径 /etc/hosts (如果是集群,每台机器都需要修改这个绑定本机实体ip,而且hosts文件的映射不得重复,如果重复linux系统为以最下面一条记录为准)
  2. 172.16.136.133 master
  3. 172.16.136.134 venus
  4. 172.16.136.135 venus2

二、启动停止

2.1 停止

  1. #机器A
  2. service rabbitmq-server stop
  3. epmd -kill
  4. #机器B
  5. service rabbitmq-server stop
  6. epmd -kill
  7. #机器C
  8. service rabbitmq-server stop
  9. epmd -kill

2.2 启动

  1. #机器A
  2. service rabbitmq-server start
  3. #机器B
  4. service rabbitmq-server start
  5. #机器C
  6. service rabbitmq-server start

三、重建集群

3.1 首先使用2.1方法停止所有机器

3.2 移除rabbitmq配置记录与存储文件

  1. #配置文件位于 /var/lib/rabbitmq/mensia
  2. mv /var/lib/rabbitmq/mensia /var/lib/rabbitmq/mensia.bak

3.3接着 按2.2方法启动所有机器

3.4 停止被加入集群节点app

 比如A、B、C三台机器,将B和C加入到A中去,需要执行以下命令
 

  1. #机器B
  2. rabbitmqctl stop_app
  3. #机器C
  4. rabbitmqctl stop_app

3.5 建立集群

注意此处master为唯一没有执行rabbitmqctl stop_app的机器

  1. #机器B
  2. rabbitmqctl join_cluster rabbit@master
  3. #机器C
  4. rabbitmqctl join_cluster rabbit@master

3.6 启动集群

  1. #机器B
  2. rabbitmqctl start_app
  3. #机器C
  4. rabbitmqctl start_app

3.7 检查集群状态

在任意一台机器上执行rabbitmqctl cluster_status命令即可检查,如下则集群正常:

3.8 添加集群配置 (见第四)

四 、添加集群配置

4.1 创建用户

 

例子中创建了两个用户

添加用户add_user,设置角色set_user_tags,添加rabbitmq虚拟主机add_vhost,设置访问权限set_permissions,以下是详细用法

  1. # 创建第一个用户
  2. /usr/sbin/rabbitmqctl add_user 用户名 密码
  3. /usr/sbin/rabbitmqctl set_user_tags 用户名 administrator
  4. /usr/sbin/rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
  5. # 创建第二个用户
  6. /usr/sbin/rabbitmqctl add_user 用户名2 密码
  7. /usr/sbin/rabbitmqctl set_user_tags 用户名2 management
  8. /usr/sbin/rabbitmqctl add_vhost sip_ext
  9. /usr/sbin/rabbitmqctl set_permissions -p sip_ext 用户名2 '.*' '.*' '.*'
  1. 备注:RabbitMQ 虚拟主机,RabbitMQ 通过虚拟主机(vhost)来分发消息。拥有自己独立的权限控制,不同的vhost之间是隔离的,单独的。
  2. 权限控制的基本单位:vhost
  3. 用户只能访问与之绑定的vhost
  4. vhostAMQP中唯一无法通过协议来创建的基元。只能通过rabbitmqctl工具来创建。

4.2 打开15672网页管理端,访问mq

 

/usr/sbin/rabbitmq-plugins enable rabbitmq_management

4.3 在底部导入.json后缀的配置文件即可

 
 
 
 
 
 
文档:https://www.jianshu.com/p/8414cd70bef1
 
 
优化参考:
https://www.jianshu.com/p/d05b04b33051
 
http://www.blogjava.net/qbna350816/archive/2016/07/30/431392.aspx

rabbitmq集群运维一点总结的更多相关文章

  1. 集群运维ansible

    ssh免密登录 集群运维 生成秘钥,一路enter cd ~/.ssh/ ssh-keygen -t rsa 讲id_rsa.pub文件追加到授权的key文件中 cat ~/.ssh/id_rsa.p ...

  2. 阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践

    作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击即可完成下载. 导读:值得阿里巴巴技术人骄傲的是 2019 ...

  3. PB 级大规模 Elasticsearch 集群运维与调优实践

    PB 级大规模 Elasticsearch 集群运维与调优实践 https://mp.weixin.qq.com/s/PDyHT9IuRij20JBgbPTjFA | 导语 腾讯云 Elasticse ...

  4. 灵雀云:etcd 集群运维实践

    [编者的话]etcd 是 Kubernetes 集群的数据核心,最严重的情况是,当 etcd 出问题彻底无法恢复的时候,解决问题的办法可能只有重新搭建一个环境.因此围绕 etcd 相关的运维知识就比较 ...

  5. etcd 集群运维实践

    etcd 是 Kubernetes 集群的数据核心,最严重的情况是,当 etcd 出问题彻底无法恢复的时候,解决问题的办法可能只有重新搭建一个环境.因此围绕 etcd 相关的运维知识就比较重要,etc ...

  6. 使用Chef管理windows集群 | 运维自动化工具

    但凡服务器上了一定规模(百台以上),普通的ssh登录管理的模式就越来越举步维艰.试想Linux发布了一个高危漏洞的补丁,你要把手下成百上千台机器都更新该补丁,如果没有一种自动化方式,那么至少要耗上大半 ...

  7. PB级大规模Elasticsearch集群运维与调优实践

    导语 | 腾讯云Elasticsearch 被广泛应用于日志实时分析.结构化数据分析.全文检索等场景中,本文将以情景植入的方式,向大家介绍与腾讯云客户合作过程中遇到的各种典型问题,以及相应的解决思路与 ...

  8. PB级大规模Elasticsearch集群运维与调优实践【>>戳文章免费体验Elasticsearch服务30天】

    [活动]Elasticsearch Service免费体验馆>> Elasticsearch Service自建迁移特惠政策>>Elasticsearch Service新用户 ...

  9. MongoDB集群运维笔记

    前面的文章介绍了MongoDB副本集和分片集群的做法,下面对MongoDB集群的日常维护操作进行小总结: MongDB副本集故障转移功能得益于它的选举机制.选举机制采用了Bully算法,可以很方便从分 ...

随机推荐

  1. sql视图显示数据不对应

    出现这样的原因是修改了表的结构,没有重新编译视图,这种情况出现的几率很少,并不是没有. 解决方法:重新编译一下该视图. 视图是一个虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存 ...

  2. memory 监控 mysql vs percona vs maria

    oracle mysql 5.7 在performance_schema 通过以下表展现内存信息.这些表实际engine为performance_schema.这些表数据实际是以数组的形式存储在内存中 ...

  3. MySQL服务使用

    MySQL服务使用 1. 启动服务 启动服务: service mysql start 或者 sudo /etc/init.d/mysql start 2. 关闭服务 关闭服务: service my ...

  4. chmod、acl权限

    R:4W:2X:1 chmod g+r file 给所有者的组内用户加上读的权限chmod o+r file 给其他组用户加上读的权限chmod a+x file 给所有用户加上写执行的权限chmod ...

  5. Vue编写的todolist小例子

    Vue编写的todolist小例子 本篇博客主要包含一个内容: 1.第一个内容:使用Vue编写todolist例子,包含的主要知识是v-model,v-for,el表达式,以及Vue中使用method ...

  6. python 线程队列、线程池、全局解释器锁GIL

    一.线程队列 队列特性:取一个值少一个,只能取一次,没有值的时候会阻塞,队列满了,也会阻塞 queue队列 :使用import queue,用法与进程Queue一样 queue is especial ...

  7. python 时间模块(time ,datetime,calendar)

    Python中提供了时间相关的内置模块,我们主要用的是:time模块.datetime模块和calendar模块 ⽇期格式化的标准: %y 两位数的年份表示(00-99) %Y 四位数的年份表示(00 ...

  8. MySQL高级知识(七)——索引面试题分析

    前言:该篇随笔通过一些案例,对索引相关的面试题进行分析. 0.准备 #1.创建test表(测试表). drop table if exists test; create table test( id ...

  9. Python3新特性 类型注解 以及 点点点

    Python3新特性 类型注解 以及 点点点 ... Python3 的新特性 Python 是一种动态语言,变量以及函数的参数是 不区分类型 的 在 函数中使用类型注解 相当于 给 形参的 类型 设 ...

  10. Interrupt

    Interrupt ,给线程发送一个中断信号 给t1线程发送了中断信号,t1对线程的中断信号判断后,跳出循环,线程t1运行结束 public class Demo { public static vo ...