ubnutu20.04 编译安装rabbitmq集群 erlang 26.2.1 和 rabbitmq 3.12.12 并开启 mqtt 协议
编译安装rabbitmq集群 编译安装erlang 开启mqtt
·
提前准备:
otp_src_26.2.1.tar.gz
rabbitmq-server-generic-unix-3.12.12.tar.xz
3台服务器
#添加hosts文件
vim /etc/hosts
服务器1的ip 对应机器的主机名
服务器2的ip 对应机器的主机名
服务器3的ip 对应机器的主机名
#安装所需依赖
apt update && sudo apt upgrade -y
apt-get install libncurses5-dev libwxgtk3.0-gtk3-dev libssl-dev
mkdir /data
#将两个tar包上传到此目录
cd /data
tar -xf otp_src_26.2.1.tar.gz
tar -xf rabbitmq-server-generic-unix-3.12.12.tar.xz
cd otp_src_26.2.1/
./configure --prefix=/opt/erlang
#出现以上图片中的提示 无需理会 正常继续编译即可
make && make install
#设置环境变量
vim /etc/profile
export PATH=$PATH:/opt/erlang/bin
export PATH=$PATH:/data/rabbitmq_server-3.12.12/sbin
source /etc/profile
erl -version
#验证erlang环境变量是否配好
#####################################################
以上操作需要三台机器都要操作
#####################################################
#选取其中一台服务器 启动rabbitmq服务
rabbitmq-server -detached
rabbitmqctl status
#查看状态
#将启动的这台服务器 /root目录下的.erlang.cookie文件scp到其他两台服务器中
scp /root/.erlang.cookie root@节点2服务器ip:/root
scp /root/.erlang.cookie root@节点3服务器ip:/root
#随后启动剩下的两台服务器
rabbitmq-server -detached
#停止节点
rabbitmqctl stop_app
#加入节点
rabbitmqctl join_cluster rabbitmq@节点名称
#节点名称不清楚 可以在第一个启动的节点 执行 rabbitmqctl cluster_status 查看 应该在输出的信息里的第一行就能找到 两台节点加入成功集群成功后 可通过 rabbitmqctl cluster_status 查看是否有3个节点
#如果查询不到 没加入 需重新启动2台后加入的节点的rabbitmq服务
rabbitmqctl stop
rabbitmq-server -detached
rabbitmqctl cluster_status
#再次执行查询命令 查看集群内是否有三台机器
rabbitmqctl add_user admin 123456
#创建用户名为admin 密码为123456
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
#给admin客户最大权限
rabbitmqctl set_user_tags admin administrator
#给admin加入管理员权限
rabbitmqctl set_permissions -p '/' admin '.' '.' '.' -n rabbit@集群名称
#创建用户和设置权限只需在一台机器上执行即可
#以下需要在三台机器上执行
abbitmq-plugins enable rabbitmq_management
#开启web页面
rabbitmq-plugins enable rabbitmq_mqtt rabbitmq_web_mqtt rabbitmq_web_stomp rabbitmq_web_stomp_examples
#开启mqtt协议 和 websocket协议
#开启镜像模式
#在任意一个节点上执行:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all" , "ha-sync-mode":"automatic"}'
参数含义:
pattern: 队列名字的通配符
ha-mode:镜像队列提供了三种模式:
all:全部的节点队列都做镜像;
exactly:指定镜像队列的节点最高镜像数量;
nodes:只为指定具体节点配置镜像队列;
ha-sync-mode :节点之前的同步模式。有自动和手动两种,默认是手动,这里设置为自动。
或者指定vhost:
rabbitmqctl set_policy -p demo ha-all "^" '{"ha-mode":"all" , "ha-sync-mode":"automatic"}'
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。
到这里,RabbitMQ 高可用集群就已经搭建好了,最后一个步骤就是搭建均衡器。
策略名称:自定义
“^”:匹配所有队列
ha-sync-mode: 默认为手动,可以配置为自动,区别在于,如果是自动做镜像回复,则该队列会处于不可用状态直到同步完成。
#开启这两个协议后 需要重启集群
rabbitmqctl stop
rabbitmq-server -detached
#重启后 执行查看节点状态
rabbitmqctl cluster_status
#最后浏览器访问
ip:15672
输入账号admin 密码123456 即可
rabbitmqctl set_vm_memory_high_watermark 0.8
#设置rabbitmq最大内存为80%
参考文章:
更多推荐
所有评论(0)