1. 服务器规划
  2. 10.0.60.83
  3. 10.0.60.84
  4. 账号admin 密码123456
  5. 目录规划
  6. 安装包位置 /application
  7. 软件位置 /usr/local/
  8. otp_src_22.0.tar.gz rabbitmq-server-generic-unix-3.7.16.tar
  9. 以及各种rpm
  10. ##创建文件夹
  11. mkdir -p /application
  12. mkdir -p /usr/local/erlang
  13. mkdir -p /usr/local/rabbitmq
  14. cd /application
  15. ## 上传软件包
  16. ## 解压
  17. for i in `ls`;do tar -xf $i;done
  18. ## RabbitMQ是Erlang语言编写的,所以在安装RabbitMQ之前,需要先安装Erlang
  19. ## 安装erlang编译所依赖的环境
  20. cd /application/rpm
  21. ls *.rpm|xargs rpm -Uvh --nodeps --force
  22. ## 安装erlang
  23. cd /application/otp_src_22.0/
  24. ./configure --prefix=/usr/local/erlang --without-javac
  25. make -j 4 && make install
  26. ## 设置环境变量
  27. cat >/etc/profile.d/rabbitmq.sh<<EOF
  28. export ERLANG_HOME=/usr/local/erlang
  29. export PATH=${ERLANG_HOME}/bin:${PATH}
  30. export RABBITMQ_HOME=/usr/local/rabbitmq
  31. export PATH=${RABBITMQ_HOME}/sbin:${PATH}
  32. EOF
  33. source /etc/profile
  34. ## 测试erl是否安装成功
  35. erl
  36. ## 退出的命令是halt().
  37. ## 安装RabbitMQ
  38. ## 环境变量在上面已经设置过了,只需要移动到对应的目录即可
  39. mv rabbitmq_server-3.7.16 /usr/local/rabbitmq
  40. ## 开启web管理界面插件(可选择不开启)
  41. cd /usr/local/software/rabbitmq_software/rabbitmq_server-3.7.16/sbin
  42. ./rabbitmq-plugins enable rabbitmq_management
  43. ## 设置RabbitMQ开机启动
  44. cat >>/etc/rc.d/rc.local<<EOF
  45. source /etc/profile
  46. /usr/local/rabbitmq/sbin/rabbitmq-server -detached
  47. EOF
  48. ##后台启动RabbitMQ服务
  49. rabbitmq-server -detached
  50. ## Warning: PID file not written; -detached was passed.
  51. ## //这个警告是正常的警告,并非是异常信息
  52. rabbitmqctl add_user Gaia Gaiaworks@2021 ## 创建用户
  53. rabbitmqctl set_user_tags Gaia administrator ## 用户授权角色
  54. rabbitmqctl set_permissions -p / Gaia ".*" ".*" ".*" ## 授权
  55. rabbitmqctl add_vhost mobile ## 添加虚拟主机
  56. rabbitmqctl set_permissions -p mobile Gaia ".*" ".*" ".*" ## 授权
  57. ## 在浏览器的地址栏中输入服务器的ip地址:15672,即可访问RabbitMQ的管理登录界面
  58. ## 添加新用户和创建虚拟主机
  59. rabbitmqctl add_user gaiahrone3 Gaia_1kZ9t
  60. rabbitmqctl set_user_tags gaiahrone3 administrator
  61. rabbitmqctl set_permissions -p / gaiahrone3 ".*" ".*" ".*"
  62. rabbitmqctl add_vhost wfm3
  63. rabbitmqctl set_permissions -p wfm3 gaiahrone3 ".*" ".*" ".*"
  64. ## 修改配置文件 使guest可以登录
  65. vim /usr/local/software/rabbitmq_software/rabbitmq_server-3.7.16/ebin/rabbit.app
  66. ## 39行 删除{loopback_users, [<<"guest">>]}, 中的<<"guest">>,注意保留后面的逗号
  67. ## 重启RabbitMQ服务
  68. rabbitmqctl stop
  69. rabbitmq-server -detached
  70. ## 重新访问RabbitMQ的管理登录界面,Username 和 Password 默认为guest/guest,登录成功
  71. ## 一台机器安装成功
## 另一台机器同上
## 安装集群
## 把两台机器的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