服务器规划 10.0.60.8310.0.60.84账号admin 密码123456目录规划安装包位置 /application软件位置 /usr/local/otp_src_22.0.tar.gz rabbitmq-server-generic-unix-3.7.16.tar以及各种rpm包##创建文件夹mkdir -p /applicationmkdir -p /usr/local/erlangmkdir -p /usr/local/rabbitmqcd /application## 上传软件包## 解压for i in `ls`;do tar -xf $i;done## RabbitMQ是Erlang语言编写的,所以在安装RabbitMQ之前,需要先安装Erlang## 安装erlang编译所依赖的环境cd /application/rpmls *.rpm|xargs rpm -Uvh --nodeps --force## 安装erlangcd /application/otp_src_22.0/./configure --prefix=/usr/local/erlang --without-javacmake -j 4 && make install## 设置环境变量cat >/etc/profile.d/rabbitmq.sh<<EOFexport ERLANG_HOME=/usr/local/erlangexport PATH=${ERLANG_HOME}/bin:${PATH}export RABBITMQ_HOME=/usr/local/rabbitmqexport PATH=${RABBITMQ_HOME}/sbin:${PATH}EOFsource /etc/profile## 测试erl是否安装成功erl## 退出的命令是halt().## 安装RabbitMQ## 环境变量在上面已经设置过了,只需要移动到对应的目录即可mv rabbitmq_server-3.7.16 /usr/local/rabbitmq## 开启web管理界面插件(可选择不开启)cd /usr/local/software/rabbitmq_software/rabbitmq_server-3.7.16/sbin./rabbitmq-plugins enable rabbitmq_management## 设置RabbitMQ开机启动cat >>/etc/rc.d/rc.local<<EOFsource /etc/profile/usr/local/rabbitmq/sbin/rabbitmq-server -detachedEOF##后台启动RabbitMQ服务rabbitmq-server -detached ## Warning: PID file not written; -detached was passed.## //这个警告是正常的警告,并非是异常信息rabbitmqctl add_user Gaia Gaiaworks@2021 ## 创建用户 rabbitmqctl set_user_tags Gaia administrator ## 用户授权角色rabbitmqctl set_permissions -p / Gaia ".*" ".*" ".*" ## 授权rabbitmqctl add_vhost mobile ## 添加虚拟主机rabbitmqctl set_permissions -p mobile Gaia ".*" ".*" ".*" ## 授权## 在浏览器的地址栏中输入服务器的ip地址:15672,即可访问RabbitMQ的管理登录界面## 添加新用户和创建虚拟主机rabbitmqctl add_user gaiahrone3 Gaia_1kZ9trabbitmqctl set_user_tags gaiahrone3 administratorrabbitmqctl set_permissions -p / gaiahrone3 ".*" ".*" ".*" rabbitmqctl add_vhost wfm3rabbitmqctl set_permissions -p wfm3 gaiahrone3 ".*" ".*" ".*"## 修改配置文件 使guest可以登录vim /usr/local/software/rabbitmq_software/rabbitmq_server-3.7.16/ebin/rabbit.app## 39行 删除{loopback_users, [<<"guest">>]}, 中的<<"guest">>,注意保留后面的逗号## 重启RabbitMQ服务rabbitmqctl stoprabbitmq-server -detached## 重新访问RabbitMQ的管理登录界面,Username 和 Password 默认为guest/guest,登录成功## 一台机器安装成功
## 另一台机器同上
## 安装集群
## 把两台机器的rabbitmq都停掉
rabbitmqctl stop_app ##用这个命令停止
##复制cookie
find / -name .erlang.cookie
scp /root/.erlang.cookie 10.0.60.84:/root
chmod o+x /root/.erlang.cookie
## 修改hosts文件
scp /etc/hosts 10.0.60.84:/etc/hosts
## 在node2 上执行加入集群
rabbitmqctl join_cluster rabbit@node1 ## 这里的node1是主机名字
## 启动rabbitmq并查看集群状态
rabbitmqctl cluster_status
#配置镜像队列
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
## 镜像集群
## 镜像模式要依赖policy模块 policy中文来说是政策,策略的意思,那么他就是要设置,那些Exchanges或者queue的数据需要复制,同步,如何复制同步?对就是做这些的。
## name: 为策略名称 ,我命名为 winy-ha
Pattern: 为匹配符,只有一个^代表匹配所有,^zlh为匹配名称为zlh的exchanges或者queue,这里我设置为匹配全部
Apply to:使用对象
Priority:配置了多个策略时候的优先级,值越大,优先级越高。(单个策略配置意义不大)
注意:没有指定优先级的消息会将优先级以0对待。 对于超过优先级队列所定最大优先级的消息,优先级以最大优先级对待
Definition: 为匹配类型,他分为3种模式:all-所有(所有的queue),exctly-部分(需配置ha-params参数,此参数为int类型比如3,众多集群中的随机3台机器),nodes-指定(需配置ha-params参数,此参数为数组类型比如["3rabbit@F","rabbit@G"]这样指定为F与G这2台机器。)
## 安装keepalived
## 安装nginx
nginx 反向代理rabbitmq的时候要用tcp模式
- stream 4层转发
- upstream 7层转发
其他
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel --downloadly --downloaddir=/tmp/nginx