zoukankan      html  css  js  c++  java
  • ubuntu 14.04 rabbitmq集群部署

    1.准备机器,我这边准备的是三台ubuntu14.04

       机器主机名不能相同,不然节点冲突

    2.安装rabbitmq 

    3.修改hosts文件  

    root@abc-web-04:~# vim /etc/hosts

      192.168.1.100 abc-web-04

      192.168.1.101 abc-web-05

      192.168.1.102 abc-web-06

    4.安装 erlang

    sudo apt-get install erlang
    

    5.修改 .erlang.cookie 文件 ,确保每一台机器的.erlang.cookie 内容(一个字符串)一样 ;如果是通过源安装RabbitMQ的话,Erlang Cookie 文件在/var/lib/rabbitmq/.erlang.cookie。如果是通过源码安装的RabbitMQ,Erlang Cookie文件$HOME/.erlang.cookie,我是通过源安装的所以直接修改 /var/lib/rabbitmq/.erlang.cookie,

     由于未知各个机器的root账户密码,复制文件无法实现,因此记录第一台机器的.erlang.cookie内容,再每一台机器上修改 /var/lib/rabbitmq/.erlang.cookie文件把值设置为同一个字符串

    vim  /var/lib/rabbitmq/.erlang.cookie
    

    6.使用detached参数,在后台启动rabbit node,要先停止现有的Rabbitmq-server,再重新在后台支行, 遇到关闭错误请确认.erlang.cookie的权限,或用命令 ps aux|grep epmd 和  ps aux|grep erl 找出相关进程   kill 掉他们,启动成功后通过命令 rabbitmqctl cluster_status查看各个节点的状态

    root@abc-web-04:~# rabbitmqctl stop
    Stopping and halting node 'rabbit@abc-web-04' ...
    ...done.
    root@abc-web-04:~# rabbitmq-server -detached
    Warning: PID file not written; -detached was passed.
    root@abc-web-04:~# rabbitmqctl cluster_status
    Cluster status of node 'rabbit@abc-web-04' ...
    [{nodes,[{disc,['rabbit@abc-web-04']}]},
     {running_nodes,['rabbit@abc-web-04']},
     {partitions,[]}]
    ...done.
    

    7. 将各个机器节点 组成集群,其他机器只要和其中一台机器组成集群,那么其他机器之间也间接组成了集群连接

            经测试,磁盘节点达到3台时就不能继续添加节点了,会分成两个2*2的集群, 需要把磁盘节点变成内存节点后可以继续添加

    root@abc-web-05:~# rabbitmqctl stop_app
    Stopping node 'rabbit@abc-web-05' ...
    ...done.
    root@abc-web-05:~# rabbitmqctl join_cluster rabbit@abc-web-04
    Clustering node 'rabbit@abc-web-05' with 'rabbit@abc-web-04' ...
    ...done.
    

    8.查看各个节点集群状态

    root@abc-web-05:~#  rabbitmqctl cluster_status
    Cluster status of node 'rabbit@abc-web-05' ...
    [{nodes,[{disc,['rabbit@abc-web-04','rabbit@abc-web-05',
    'rabbit@abc-web-06']}]},
    {running_nodes,['rabbit@abc-web-04','rabbit@abc-web-06','rabbit@abc-web-05']},
    {partitions,[]}] ...done.

    集群配置好后,可以在 RabbitMQ 任意节点上执行 rabbitmqctl cluster_status 来查看是否集群配置成功。

    9.变更节点类型   disc / ram  这里设置的是两台ram  一台disc 

    rabbitmqctl change_cluster_node_type disc
    

    10.添加虚拟主机 vhost

    rabbitmqctl add_vhost hrsystem
    

    11.为虚拟主机设置策略

    rabbitmqctl set_policy -p hrsystem ha-allqueue "^" '{"ha-mode":"all"}'
    rabbitmqctl set_policy -p / ha-allqueue "^" '{"ha-mode":"all"}'       //默认配置    

    这行命令在vhost名称为hrsystem创建了一个策略,策略名称为ha-allqueue,策略模式为 all 即复制到所有节点,包含新增节点,策略正则表达式为 “^” 表示所有匹配所有队列名称

    12.设置集群名称 (经测试,set_cluster_name  命令不存在 原因未知 )

    rabbitmqctl set_cluster_name abccluster
    

    13. 安装 haproxy

    sudo apt-cache showpkg haproxy
    

    14.配置  https://www.cnblogs.com/lion.net/p/5725474.html

    资料源自网络  

  • 相关阅读:
    android PopupWindow的使用
    工作
    android StringUtils
    Android DrawableTextView图片文字居中显示
    android 布局使用GridView
    android 微信支付流程
    日记 2016.10.23 好好努力 不要放弃治疗!
    一、Python爬虫
    【Python工具】Excle 读写 (使用 xlrd 和 xlrt)
    Django中,图片显示问题--Django中静态文件处理方法指南
  • 原文地址:https://www.cnblogs.com/chongerwangzi/p/9460115.html
Copyright © 2011-2022 走看看