• RabbitMQ (简单集群部署操作)


    RabbitMQ 集群部署

    前期准备

    第一步:三台linux系统(centos7.3)

    主机名(hostname) 网卡ip
    node1 192.168.137.138
    node2 192.168.137.139
    node3 192.168.137.140
    ##所有node操作:域名解析ip
    
    # vim /etc/hosts
    ...
    192.168.137.139  node2
    192.168.137.140  node3
    192.168.137.138  node1
    ...
    
    ##ndoe1 操作:无密钥登陆其他主机
    
    [root@node1 ~]# ssh-keygen
    
    [root@node1 ~]# ssh-copy-id node2
    [root@node1 ~]# ssh-copy-id node3
    

    布置RabbitMQ集群

    第一步:下载安装

    ##所有node安装rabbtimq和erlang软件包
    
    yum install -y erlang rabbitmq-server.noarch
    systemctl start rabbitmq-server.service
    systemctl status rabbitmq-server.service
    systemctl enable rabbitmq-server.service
    
    

    第二步:检查(可选)

    ##所有node操作
    
    #检查端口:RabbitMQ 端口号为5672
    ss -ntl |grep 5672
    
    #主配置文件目录
    /etc/rabbitmq/rabbitmq.config
    

    第三步:添加一个openstack的用户,并设密码为RABBIT_PASS。并设置权限和成为管理员

    ##node1操作
    
    rabbitmqctl add_user openstack RABBIT_PASS
    rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    rabbitmqctl set_user_tags openstack administrator
     
    

    第四步:编辑rabbitmq变量文件

    ##node1:操作
    
    vim /etc/rabbitmq/rabbitmq-env.conf
    ...
    RABBITMQ_NODE_PORT=5672
    ulimit -S -n 4096
    RABBITMQ_SERVER_ERL_ARGS="+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"
    RABBITMQ_NODE_IP_ADDRESS=172.16.254.60
    ...
    

    第五步:将rabbittmq变量文件拷贝到其他两节点,之后并修改相应节点的ip

    ##node1操作
    
    scp /etc/rabbitmq/rabbitmq-env.conf node2:/etc/rabbitmq/
    scp /etc/rabbitmq/rabbitmq-env.conf node3:/etc/rabbitmq/
    
    ##将ip修改为相应节点的ip
    
    

    第六步:开启rabbitmq的web管理页面

    ##所有node操作
    
    ##查看rabbitmq插件
    /usr/lib/rabbitmq/bin/rabbitmq-plugins list
    
    
    ##开启rabbitmq的web管理页面
    /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent
    ##或者:
    rabbitmq-plugins enable rabbitmq_management
    
    
    systemctl restart rabbitmq-server.service
    systemctl status rabbitmq-server.service
    

    第七步:node1发送erlang.cookie到其他节点配置集群

    rabbitmqctl status
    scp /var/lib/rabbitmq/.erlang.cookie node2:/var/lib/rabbitmq/.erlang.cookie
    scp /var/lib/rabbitmq/.erlang.cookie node3:/var/lib/rabbitmq/.erlang.cookie
    

    第八步:node2和node3停止应用,并以ram的方式加入node1节点,之后重启应用

    systemctl restart rabbitmq-server.service
    rabbitmqctl stop_app
    rabbitmqctl join_cluster --ram rabbit@node1
    rabbitmqctl start_app
    

    第九步:检查集群的状态

    # rabbitmqctl cluster_status
    

    第十步:登陆

    192.168.137.138:15672
    


    其他命令操作

    修改guest密码为admin(默认用户为:guest 密码为:guest)

    rabbitmqctl change_password guest admin
    

    添加管理员:

    rabbitmqctl add_user mqadmin mqadmin
    rabbitmqctl set_user_tags mqadmin administrator
    rabbitmqctl set_permissions -p / mqadmin ".*" ".*" ".*"
    

    更改节点类型(内存型或磁盘型)

    rabbitmqctl stop_app
    rabbitmqctl change_cluster_node_type disc 或 rabbitmqctl change_cluster_node_type ram
    rabbitmqctl start_app
    

    从集群移除节点(或者重置节点)

    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl start_app
    rabbitmqctl cluster_status
    

    从某个节点移除集群中其他节点

    rabbitmqctl forget_cluster_node rabbit@node3
    rabbitmqctl reset
    rabbitmqctl start_app
    rabbitmqctl cluster_status
    

    rabbitmqctl命令官方文档:

    https://www.rabbitmq.com/rabbitmqctl.8.html

  • 相关阅读:
    sys.exc_info()方法:获取异常信息
    tempfile模块:生成临时文件和临时目录
    fnmatch模块:用于文件名的匹配
    pathlib模块用法详解
    linecache模块 随机读取文件指定行
    fileinput模块:逐行读取多个文件
    asyncio异步IO--协程(Coroutine)与任务(Task)详解
    Python中协程异步IO(asyncio)详解
    删除某个时间段之前的文件
    Mac入门--如何使用brew安装多个PHP版本
  • 原文地址:https://www.cnblogs.com/du-z/p/11254203.html
Copyright © 2020-2023  润新知