rabbitmq集群搭建(三服务器三节点)linux

rabbitmq集群搭建(三节点)

一、rabbitMQ 单例搭建

1、安装socat

  yum -y install socat

  • 安装erlang

  rpm -ivh erlang-21.3-1.el7.centos.x86_64.rpm

3、安装rabbitMQ

  rpm -ivh rabbitmq-server-3.8.8-1.el6.noarch.rpm

注意:下载Erlang与RabbitMQ(二者版本要相互对应)

 

注:如果安装erlang rabbitmq失败执行以下红色命令

wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm

wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc

rpm –import rabbitmq-signing-key-public.asc

rpm -Uvh erlang-19.0.4-1.el7.centos.x86_64.rpm rabbitmq-server-3.6.10-1.el7.noarch.rpm

 

启动: 只能root用户启动

方式1:

  systemctl start rabbitmq-server

方式2:

  /sbin/service rabbitmq-server start

关闭:

方式1:  

rabbitmqctl stop

方式2:

/sbin/service rabbitmq-server stop

查看状态:

  rabbitmqctl status

 

二、rabbitMQ集群搭建

  节点:IP1、IP2、IP3

1、使IP2和IP3的cookie与IP1保持一致

IP1: (cookie是个隐藏文件,进入/var/lib/rabbitmq/下用ls -al查看)

   chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

   chmod 600 /var/lib/rabbitmq/.erlang.cookie #设置权限IP2和IP3都需要设置

   将IP1的内容拷贝到IP2、IP3该文件中

2、IP1、IP2、IP3设置hosts

   vi /etc/hosts

   配置 IP1、IP2、IP3的主机名

   IP1  主机名01   

   IP2  主机名02   

   IP3  主机名03 

  • 配置集群

在IP1服务器上

#rabbit_node_one: 使用默认端口

RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit_node_one rabbitmq-server -detached

在IP2服务器上

#rabbit_node_two

RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS=”-rabbitmq_management listener [{port,15673}] -rabbitmq_stomp tcp_listeners [61614] -rabbitmq_mqtt tcp_listeners [1884]” RABBITMQ_NODENAME=rabbit_node_two rabbitmq-server -detached

在IP3服务器上

#rabbit_node_three

RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS=”-rabbitmq_management listener [{port,15674}] -rabbitmq_stomp tcp_listeners [61615] -rabbitmq_mqtt tcp_listeners [1885]” RABBITMQ_NODENAME=rabbit_node_three rabbitmq-server -detached

 

三台服务器都启动成功后

在IP2服务器上

#配置rabbit_node_two 为持久化节点 从节点

rabbitmqctl -n rabbit_node_two stop_app

rabbitmqctl -n rabbit_node_two reset

rabbitmqctl -n rabbit_node_two join_cluster rabbit_node_one@”服务器名” (注意: 服务器名为上面配置的主机名,不是ip,,需要配置hosts)

 

  如果加不到第一个节点,看端口是否通,如果端口通的话,看/var/log/rabbitmq下的日志

   egg:cannot read rabbitmq-plugins enabled_plugins

   解决方法:cd /etc/rabbitmq 下执行命令:chmod a+r enabled_plugins

rabbitmqctl -n rabbit_node_two start_app

在IP3服务器上

#rabbit_node_three 为内存节点 从节点

rabbitmqctl -n rabbit_node_three stop_app

rabbitmqctl -n rabbit_node_three reset

rabbitmqctl -n rabbit_node_three join_cluster rabbit_node_one@”服务器名” –ram (注意: 服务器名为上面配置的主机名,不是ip,,需要配置hosts)

rabbitmqctl -n rabbit_node_three start_app

 

4、验证集群

  #查询集群状态

rabbitmqctl cluster_status -n rabbit_node_one

rabbitmqctl -n rabbit_node_one cluster_status(集群状态查看

 

   出现如下信息说明成功:

   {nodes,[{disc,[‘rabbit@rabbitmq01’]},{ram,[‘rabbit@rabbitmq02 ‘]}

 

5、设置rabbitmq用户信息

rabbitmqctl -n rabbit_node_one add_user jtop 123456

rabbitmqctl -n rabbit_node_one set_user_tags jtop administrator

rabbitmqctl -n rabbit_node_one set_permissions -p / jtop “.*” “.*” “.*”

 

 

  • 相关插件(每个节点需要分别执行)

# 管理台开启

rabbitmq-plugins enable rabbitmq_management -n rabbit_node_one

# 管理台关闭

rabbitmq-plugins disable rabbitmq_management -n rabbit_node_one

 

# trac日志开启

rabbitmq-plugins enable rabbitmq_tracing -n rabbit_node_one

# trac日志关闭

rabbitmq-plugins disable rabbitmq_tracing -n rabbit_node_one

 

 

7、节点操作

   删除所有节点

1. rabbitmq-server -detached

 

2. rabbitmqctl stop_app

 

3. rabbitmqctl reset 

 

4. rabbitmqctl start_app

 

  删除某一个节点

rabbitmqctl forget_cluster_node   node_name

 

 

8、停止操作

注意:重启rabbit集群的操作为:按顺序停止节点:节点3-节点2-节点1

启动时按顺序启动节点:节点1-节点2-节点3

需分别到对应的服务器上进行执行

rabbitmqctl -n rabbit_node_three stop

rabbitmqctl -n rabbit_node_two stop

rabbitmqctl -n rabbit_node_one stop

 

9、添加镜像

 

 

rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:”all”}’ -n rabbit_node_one

 

 

Admin

Rabbitmq7760

 

Active

 

15672

 

 

10.131.100.69

10.131.100.70

10.131.100.71

 

Redis: 9001_9006   passwd:redisCluster7760

 

Zookeeper: 2181

27371

 

 

root/Ea4h6qjv

 

 

免责声明: 本文来自梵星网创作者,不代表梵星网的观点和立场。 本网页内容均来自网络采集,如果侵犯了您的权益请与我司联系。
THE END
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容