• rabbitmq集群操作与启停



    以下操作都以三节点集群为例,机器名标记为机器A、机器B、机器C,如果为双节点忽略机器C,如果为各多节点则与机器C操作相同

    一、rabbitmq集群必要条件

    1.1. 绑定实体ip,即ifconfig所能查询到的绑定到网卡上的ip,以下是绑定方法

    #编辑配置路径 /etc/rabbitmq/rabbitmq-env.conf
    NODE_IP_ADDRESS=172.16.136.133

    1.2. 配置域名映射到实体ip

    #配置文件1所在路径 /etc/rabbitmq/rabbitmq.config (如果是集群,每台机器都需要修改这个绑定本机实体ip)
    #其中rabbit@master是创建集群时所配置的参数,@后面的参数为主机名,示例中为master
    [
        {rabbit, [
        {cluster_nodes, {['rabbit@master'], disc}},
        {cluster_partition_handling, ignore},
        {default_user, <<"guest">>},
        {default_pass, <<"guest">>},
        {tcp_listen_options, [binary,
            {packet, raw},
            {reuseaddr, true},
            {backlog, 128},
            {nodelay, true},
            {exit_on_close, false},
            {keepalive, true}]}
        ]},
        {kernel, [
            {inet_dist_listen_max, 44001},
            {inet_dist_listen_min, 44001}
        ]}
    ].
    #配置文件2 所在路径 /etc/hosts (如果是集群,每台机器都需要修改这个绑定本机实体ip,而且hosts文件的映射不得重复,如果重复linux系统为以最下面一条记录为准)
    172.16.136.133 master
    172.16.136.134 venus
    172.16.136.135 venus2

    二、启动停止

    2.1 停止

    #机器A
    service rabbitmq stop
    epmd -kill
    #机器B
    service rabbitmq stop
    epmd -kill
    #机器C
    service rabbitmq stop
    epmd -kill

    2.2 启动

    #机器A
    service rabbitmq start
    #机器B
    service rabbitmqstart
    #机器C
    service rabbitmqstart

    三、重建集群

    3.1 使用2.1方法停止所有机器

    3.2 移除rabbitmq配置记录与存储文件

    #位于 /var/lib/rabbitmq/mensia
    mv /var/lib/rabbitmq/mensia /var/lib/rabbitmq/mensia.bak

    3.3 按2.2方法启动所有机器

    3.4 停止被加入集群节点app

    比如A、B、C三台机器,将B和C加入到A中去,需要执行以下命令

    #机器B
    rabbitmqctl stop_app
    #机器C
    rabbitmqctl stop_app

    3.5 建立集群

    注意此处master为唯一没有执行rabbitmqctl stop_app的机器

    #机器B
    rabbitmqctl join_cluster rabbit@master
    #机器C
    rabbitmqctl join_cluster rabbit@master

    3.6 启动集群

    #机器B
    rabbitmqctl start_app
    #机器C
    rabbitmqctl start_app

    3.7 检查集群状态

    在任意一台机器上执行rabbitmqctl cluster_status命令即可检查,输出包含集群中的节点与运行中的节点,兼以主机名标志

    3.8 添加集群配置 (见第四)

    四 添加集群配置

    4.1 创建用户

    例子中创建了两个用户
    添加用户add_user,设置角色set_user_tags,添加rabbitmq虚拟主机add_vhost,设置访问权限set_permissions,以下是详细用法

        # 创建第一个用户
        /usr/sbin/rabbitmqctl add_user 用户名 密码
        /usr/sbin/rabbitmqctl set_user_tags 用户名 administrator
        /usr/sbin/rabbitmqctl set_permissions -p /  用户名 ".*" ".*" ".*"
        # 创建第二个用户
        /usr/sbin/rabbitmqctl add_user 用户名2 密码
        /usr/sbin/rabbitmqctl set_user_tags 用户名2 management 
        /usr/sbin/rabbitmqctl add_vhost sip_ext 
        /usr/sbin/rabbitmqctl set_permissions -p sip_ext 用户名2 '.*' '.*' '.*' 
    备注:RabbitMQ 虚拟主机,RabbitMQ 通过虚拟主机(vhost)来分发消息。拥有自己独立的权限控制,不同的vhost之间是隔离的,单独的。
    
    权限控制的基本单位:vhost。
    
    用户只能访问与之绑定的vhost。
    
    vhost是AMQP中唯一无法通过协议来创建的基元。只能通过rabbitmqctl工具来创建。 
    

    4.2 打开15672网页管理端,访问mq

    /usr/sbin/rabbitmq-plugins enable rabbitmq_management

    4.3 在底部导入.json后缀的配置文件即可

    这里写图片描述

    如果覆盖了用户需要使用以下命令修改mq用户密码
    /usr/sbin/rabbitmqctl change_password 用户名 密码

  • 相关阅读:
    初级程序员面试不靠谱指南(三)
    [细节决定B度]之回首一瞥cout<<"Hello,world"<<endl;
    20110310日记wmh
    SliverLight 控件属性的赋值方式
    20110309wmh日记
    20110308wmh日记
    20110307wmh日记
    STOAdiary20110314完成的任务
    20110313wmh日记
    20110311wmh日记
  • 原文地址:https://www.cnblogs.com/pzqu/p/9457613.html
Copyright © 2020-2023  润新知