Docs/应用相关/RabbitMQ集群安装配置.md
2022-10-18 16:59:37 +08:00

6.7 KiB
Raw Permalink Blame History

RabbitMQ集群安装配置 环境:

    CentOS 6.5 x64

    otp_src_19.1.tar.gz

    rabbitmq-server-generic-unix-3.6.6.tar.xz

集群信息:

    ①节点1172.16.4.93 主机名SHVM-RMQ01-4-93

    ②节点2172.16.4.94 主机名SHVM-RMQ02-4-94

    ③节点3172.16.4.95 主机名SHVM-RMQ03-4-95

准备工作

注意:所有以下步骤在三台主机上都要操作

①配置本地解析

    在/etc/hosts中添加对三台主机的解析如下ip都为各主机对应主机名

        172.16.4.93 SHVM-RMQ01-4-93
        172.16.4.94 SHVM-RMQ02-4-94
        172.16.4.95 SHVM-RMQ03-4-95

②关闭selinux

setenfore 0 ③开放1567225672567256714369端口

    编辑/etc/sysconfig/iptables添加如下

-A INPUT -m state --state NEW -m tcp -p tcp --dport 4369 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 5671 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 5672 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 15672 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 25672 -j ACCEPT ④安装依赖及编译环境

yum -y install install make gcc gcc-c++ kernel-devel ncurses ncurses-devel openssl openssl-devel unixODBC unixODBC-devel perl ⑤新建用户

useradd -u 1880 -g 1500 rmq

安装配置erlang

注意:所有以下步骤在三台主机上都要操作

①解压

tar -xf otp_src_19.1.tar.gz ②编译安装erlang

cd otp_src_19.1 ./configure --prefix=/usr/local/erlang --with-ssl make && make install ③配置环境变量

 编辑/etc/profile在最后添加如下行

ERLANG_HOME=/usr/local/erlang PATH=$PATH:$ERLANG_HOME/bin export PATH ④测试erlang

erl 如果出现类似下图的情况说明erlang安装成功

退出方法Ctrl+c然后输入a回车

如果不成功请检查erlang编译安装是否有问题环境变量是否配置正确

安装配置rabbitMQ

注意:所有以下步骤在三台主机上都要操作

①解压

xz -d rabbitmq-server-generic-unix-3.6.6.tar.xz tar -xf rabbitmq-server-generic-unix-3.6.6.tar ②配置环境变量

编辑/home/rmq/.bash_profile添加如下行

RMQ_HOME=/opt/appl/rabbitmq/rmq PATH=$PATH:$RMQ_HOME/sbin export PATH cd $RMQ_HOME ③切换到rmq用户测试erl是否正常

sudo su - rmq erl 如果提示找不到这个命令,尝试修改/usr/local/erlang/lib/erlang/bin目录权限为755解决。

因为erl这个文件是/usr/local/erlang/lib/erlang/bin/erl的链接文件。

④安装web管理界面

rabbitmq-plugins enable rabbitmq_management

配置rabbitMQ集群

①设置.erlang.cookie

用节点1中的/home/rmq/.erlang.cookie文件中的值替换其他两个节点相同文件中的值

②停止rabbitMQ并后台启动

rabbitmqctl stop rabbitmq-server -detached ③将节点2节点3于节点1组成集群

节点2

rabbitmqctl stop_app rabbitmqctl join_cluster rabbit@SHVM-RMQ01-4-93 rabbitmqctl start_app 节点3

rabbitmqctl stop_app rabbitmqctl join_cluster rabbit@SHVM-RMQ01-4-93 rabbitmqctl start_app ④测试集群是否配置成功

rabbitmqctl cluster_status ⑤设置镜像队列策略(任一个节点执行都可以)

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

配置HAProxy

安装haproxy修改 /etc/haproxy/haproxy.cfg

listen rabbitmq_cluster 0.0.0.0:5672

mode tcp balance roundrobin

server node1 172.16.4.93:5672 check inter 2000 rise 2 fall 3
server node2 172.16.4.94:5672 check inter 2000 rise 2 fall 3 server node2 172.16.4.95:5672 check inter 2000 rise 2 fall 3

登录rabbitMQ后台监控

默认已经有一个guest的管理员用户密码guest但是这个用户不能远程登录只能在本机访问登录所以必须添加一个用户可以远程登录

①添加admin用户

rabbitmqctl add_user admin rabbitmq ②赋予权限

rabbitmqctl set_permissions -p "/" admin "." "." ".*" ③修改角色

rabbitmqctl set_user_tags admin administrator ④远程登录后台

通过http://172.16.4.93:15672   http://172.16.4.94:15672   http://172.16.4.95:15672 访问各节点

其他一些命令与说明

应用和集群管理(先启动集群各个服务,再启动应用) 1.停止RabbitMQ应用关闭节点

rabbitmqctl stop

2.停止RabbitMQ应用

rabbitmqctl stop_app

3.启动RabbitMQ应用

rabbitmqctl start_app

4.显示RabbitMQ中间件各种信息

rabbitmqctl status

5.重置RabbitMQ节点

rabbitmqctl reset

rabbitmqctl force_reset

6.查看所有队列信息

rabbitmqctl list_queues

7.启动服务

rabbitmq-server detached

8.查看集群状态

rabbitmqctl cluster_status

9.Binding信息

rabbitmqctl list_bindings

10.Connection信息

rabbitmqctl list_connections

11.Exchange信息

rabbitmqctl list_exchanges

12.后台启动所有服务

rabbitmq-server -detached

13.查看队列

rabbitmqctl list_policies

14.开启某个插件 #rabbitmq-plugins enable xxx 15.关闭某个插件 #rabbitmq-plugins disable xxx 16.新建用户 #rabbitmqctl add_user xxx pwd 17.删除用户 #rabbitmqctl delete_user xxx 18.修改密码 #rabbimqctl change_password {username} {newpassword} 19.设置用户角色 #rabbitmqctl set_user_tags {username} {tag ...} Tag可以为 administrator,monitoring, management

RabbitMQ端口说明 端口4369 、5672、5671 、25672、15672 、61613、61614 、1883、8883 4369 (epmd) 5672, 5671 (AMQP 0-9-1 and 1.0 without and with TLS) 25672. This port used by Erlang distribution for inter-node and CLI tools communication and is allocated from a dynamic range (limited to a single port by default, computed as AMQP port + 20000). See networking guide for details. 15672 (if management plugin is enabled) 61613, 61614 (if STOMP is enabled) 1883, 8883 (if MQTT is enabled)

HAProxy常用的算法有如下8种 balance roundrobin表示简单的轮询建议关注 balance static-rr表示根据权重建议关注 balance leastconn表示最少连接者先处理建议关注 balance source表示根据请求源IP跟Nginx的ip_hash算法相似建议关注 balance uri表示根据请求的URI balance url_param表示根据请求的URl参数 balance hdr(name)表示根据HTTP请求头来锁定每一次HTTP请求 balance rdp-cookie(name)表示根据据cookie(name)来锁定并哈希每一次TCP请求。

登录rabbitMQ后台监控

默认已经有一个guest的管理员用户密码guest但是这个用户不能远程登录只能在本机访问登录所以必须添加一个用户可以远程登录