rabbitmq集群運維一點總結


說明:以下操作都以三節點集群為例,機器名標記為機器A、機器B、機器C,如果為雙節點忽略機器C,如果為各多節點則與機器C操作相同

一、rabbitmq集群必要條件

1.1、綁定實體ip,即ip a所能查詢到的綁定到網卡上的ip,以下是綁定方法:

1 #編輯配置路徑 /etc/rabbitmq/rabbitmq-env.conf
2 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-server stop
    epmd -kill
    #機器B
    service rabbitmq-server stop
    epmd -kill
    #機器C
    service rabbitmq-server stop
    epmd -kill

2.2 啟動

    #機器A
    service rabbitmq-server  start
    #機器B
    service rabbitmq-server start
    #機器C
    service rabbitmq-server  start

三、重建集群

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的機器

1     #機器B
2     rabbitmqctl join_cluster rabbit@master
3     #機器C
4     rabbitmqctl join_cluster rabbit@master

3.6 啟動集群

1     #機器B
2     rabbitmqctl start_app
3     #機器C
4     rabbitmqctl start_app

3.7 檢查集群狀態

在任意一台機器上執行rabbitmqctl cluster_status命令即可檢查,如下則集群正常:

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

四 、添加集群配置

4.1 創建用戶

 

例子中創建了兩個用戶

添加用戶add_user,設置角色set_user_tags,添加rabbitmq虛擬主機add_vhost,設置訪問權限set_permissions,以下是詳細用法

 

1         # 創建第一個用戶
2         /usr/sbin/rabbitmqctl add_user 用戶名 密碼
3         /usr/sbin/rabbitmqctl set_user_tags 用戶名 administrator
4         /usr/sbin/rabbitmqctl set_permissions -p /  用戶名 ".*" ".*" ".*"
5         # 創建第二個用戶
6         /usr/sbin/rabbitmqctl add_user 用戶名2 密碼
7         /usr/sbin/rabbitmqctl set_user_tags 用戶名2 management 
8         /usr/sbin/rabbitmqctl add_vhost sip_ext 
9         /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后綴的配置文件即可

 
 
 
 
 
 
文檔:https://www.jianshu.com/p/8414cd70bef1
 
 
優化參考:
https://www.jianshu.com/p/d05b04b33051
 
http://www.blogjava.net/qbna350816/archive/2016/07/30/431392.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM