CentOS7.X安裝RabbitMQ-3.6.10

qq2233466866發表於2018-06-11

CentOS7.0安裝RabbitMQ

  1. 安裝前的準備

    yum install 
    m4 
    vim 
    wget 
    gcc 
    gcc-c++ 
    make 
    cmake 
    automake 
    autoconf 
    readline 
    kernel-devel 
    ncurses-devel 
    openssl-devel 
    unixODBC-deve 
    readline-devel 
    librabbitmq-devel 
    -y 
  2. 原始碼安裝erlang

    erlang下載

    erlang-20.0

    cd /root
    wget http://erlang.org/download/otp_src_20.0.tar.gz
    tar -zxvf otp_src_20.0.tar.gz
    cd otp_src_20.0
    ./configure 
    --prefix=/usr/local/erlang 
    --without-javac 
    make
    make install
  3. 加入環境變數

    vim /etc/profile
    
    export PATH=$PATH:/usr/local/erlang/bin
    
    ESC
    :wq
    
    source /etc/profile
  4. 測試啟動erlang

    /usr/local/erlang/bin/erl
    
    # 顯示Eshell V8.2  (abort with ^G)
    # 輸入:
    1>9+7.
    16
    # 退出:
    2>halt().
  5. 安裝RabbitMQ
    下載地址

    進入下載地址,找到|Binary .tar.xz .zip|
    
    cd /root
    wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-generic-unix-3.6.10.tar.xz
    xz -d rabbitmq-server-generic-unix-3.6.10.tar.xz
    tar -xvf rabbitmq-server-generic-unix-3.6.10.tar
    cp -r /root/rabbitmq_server-3.6.10 /usr/local/rabbitmq
  6. 新增配置檔案
    配置參考

    vim /usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config
    
    [{rabbit,[{tcp_listeners,[5672]}]}].
    
    ESC
    :wq
  7. 加入環境變數

    vim /etc/profile
    
    export RABBITMQ_HOME=/usr/local/rabbitmq
    export PATH=$PATH:/usr/local/rabbitmq/sbin
    
    ESC
    :wq
    
    source /etc/profile
  8. 啟動RabbitMQ

    /usr/local/rabbitmq/sbin/rabbitmq-server -detached
  9. 開機啟動RabbitMQ

    vim /etc/rc.local
    
    /usr/local/rabbitmq/sbin/rabbitmq-server -detached
    
    ESC
    :wq
  10. 安裝php-amqp擴充套件前準備: 安裝rabbitmq-c
    參考連結

    cd /root
    wget https://github.com/alanxz/rabbitmq-c/archive/v0.8.0.tar.gz
    tar -zxvf v0.8.0.tar.gz
    cd rabbitmq-c-0.8.0
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c-0.8.0
    make
    make install
  11. 新增使用者並授權

    # 建立使用者
    rabbitmqctl add_user rabbitmq `12345678`
    
    # 新增使用者[管理員]標籤
    rabbitmqctl set_user_tags rabbitmq administrator
    
    # 建立virtual host
    rabbitmqctl add_vhost /vhost1
    
    # 為使用者授權可以訪問的[virtual host]和操作型別[配置、讀、寫]
    rabbitmqctl set_permissions -p /vhost1 rabbitmq `.*` `.*` `.*`
    
    # 啟用rabbitmq_management
    rabbitmq-plugins enable rabbitmq_management

RabbitMQ許可權

  1. RabbitMQ角色許可權

    # 角色列表:
    none、management、policymaker、monitoring、administrator
    
    # 角色許可權:
    【none】
    不能訪問 management_plugin(圖形管理介面)
    
    【management】(單一virtual hosts使用者)
    使用者可以通過AMQP做的任何事外加:
    列出自己可以通過AMQP登入的virtual hosts  
    檢視自己的virtual hosts中的queues, exchanges 和 bindings
    檢視和關閉自己的channels 和 connections
    檢視有關自己的virtual hosts的“全域性”的統計資訊,包含其他使用者在這些virtual hosts中的活動
    
    【policymaker】
    management可以做的任何事外加:
    檢視、建立和刪除自己的virtual hosts所屬的policies和parameters
    
    【monitoring】(監控使用者)
    management可以做的任何事外加:
    列出所有virtual hosts,包括他們不能登入的virtual hosts
    檢視其他使用者的connections和channels
    檢視節點級別的資料如clustering和memory使用情況
    檢視真正的關於所有virtual hosts的全域性的統計資訊
    
    【administrator】(全權使用者)
    policymaker和monitoring可以做的任何事外加:
    建立和刪除virtual hosts
    檢視、建立和刪除users
    檢視建立和刪除permissions
    關閉其他使用者的connections

RabbitMQ管理參考連結

  1. rabbitmq-plugins命令詳解

    # 格式:
    rabbitmq-plugins <command> [<command options>]
    
    # 顯示所有的的外掛 -v:顯示外掛版本 -m:顯示外掛名稱 -E:顯示明確已經開啟的外掛 -e:顯示明確和後臺開啟的外掛
    rabbitmq-plugins list [-v|-m] [-E|-e] [<pattern>]
    
    # 啟用外掛
    rabbitmq-plugins enable <plugin1> <plugin2> ... <plugin_n>
    
    # 禁用外掛
    rabbitmq-plugins disable <plugin1> <plugin2> ... <plugin_n>
    
    # 啟用所有外掛
    rabbitmq-plugins enable 
    amqp_client 
    cowboy 
    cowlib 
    rabbitmq_amqp1_0 
    rabbitmq_auth_backend_ldap 
    rabbitmq_auth_mechanism_ssl 
    rabbitmq_consistent_hash_exchange 
    rabbitmq_event_exchange 
    rabbitmq_federation 
    rabbitmq_federation_management 
    rabbitmq_jms_topic_exchange 
    rabbitmq_management 
    rabbitmq_management_agent 
    rabbitmq_management_visualiser 
    rabbitmq_mqtt 
    rabbitmq_recent_history_exchange 
    rabbitmq_sharding 
    rabbitmq_shovel 
    rabbitmq_shovel_management 
    rabbitmq_stomp 
    rabbitmq_top 
    rabbitmq_tracing 
    rabbitmq_trust_store 
    rabbitmq_web_dispatch 
    rabbitmq_web_stomp 
    rabbitmq_web_stomp_examples 
    sockjs 
  2. rabbitmqctl命令全解(CLI模式管理)

    # 格式:
    rabbitmqctl [-n <node>] [-q] <command> [<command options>]
    
    # 【基本命令】
    
    # 停止執行rabbitmq
    rabbitmqctl stop <pid_file>
    
    # 停止執行rabbitmq上的應用
    rabbitmqctl stop_app
    
    # 等待rabbitmq服務啟動
    rabbitmqctl wait <pid_file>
    
    # 初始化node狀態(要先執行rabbitmqctl stop_app)
    rabbitmqctl reset
    
    # 強制初始化node狀態
    rabbitmqctl force_reset
    
    # 輪轉日誌檔案
    rabbitmqctl rotate_logs <suffix>
    
    # 【cluster叢集管理】
    
    # 預設node以disc node加入叢集,--ram表示node以ram node加入叢集中(要先執行rabbitmqctl stop_app)
    rabbitmqctl join_cluster <node name> --ram
    
    # 顯示cluster中的所有node
    rabbitmqctl cluster_status
    
    # 改變一個cluster中node的模式,該節點在轉換前必須先停止,不能把一個叢集中唯一的disk node轉化為ram node
    rabbitmqctl change_cluster_node_type disc | ram
    
    # 遠端移除cluster中的一個node,前提是該node必須處於offline狀態,如果是online狀態,則需要加--offline引數。
    rabbitmqctl forget_cluster_node --offline
    
    # 遠端更新cluster中的node
    rabbitmqctl update_cluster_nodes clusternode
    
    # 同步映象佇列
    rabbitmqctl sync_queue queue
    
    # 取消同步映象佇列
    rabbitmqctl cancel_sync_queue queue 
    
    # 【使用者管理】
    
    # 新增rabbitmq使用者
    rabbitmqctl add_user <username> <password>
    
    # 刪除rabbitmq使用者
    rabbitmqctl delete_user <username>
    
    # 改變rabbitmq使用者密碼
    rabbitmqctl change_password <username> <newpassword>
    
    # 清除使用者密碼,禁止使用者登入
    rabbitmqctl clear_password <username>
    
    # 設定使用者標籤
    rabbitmqctl set_user_tags <username> <tag1> <tag2> ... <tag_n>
    
    # 列出使用者
    rabbitmqctl list_users
    
    # 建立一個vhosts
    rabbitmqctl add_vhost <vhostpath>
    
    # 刪除一個vhosts
    rabbitmqctl delete_vhost <vhostpath>
    
    # 列出vhosts
    rabbitmqctl list_vhosts <vhostinfoitem1> <vhostinfoitem2> ... <vhostinfoitem_n>
    
    # 針對一個vhosts 給使用者賦予相關許可權
    rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
    
    # 清除一個使用者對vhosts的許可權
    rabbitmqctl clear_permissions [-p <vhostpath>] <username>
    
    # 列出哪些使用者可以訪問該vhosts
    rabbitmqctl list_permissions [-p <vhostpath>]
    
    #列出該使用者的訪問許可權
    rabbitmqctl list_user_permissions <username>
    
    # 修改vhost路徑引數
    rabbitmqctl set_parameter [-p <vhostpath>] <component_name> <key> <value>
    
    # 清除vhost路徑引數
    rabbitmqctl clear_parameter [-p <vhostpath>] <component_name> <key>
    
    # 列出vhost路徑引數
    rabbitmqctl list_parameters [-p <vhostpath>]
    
    # 【策略policy管理】
    
    # name:策略名稱 pattern:匹配資源正規表示式 apply-to:策略應用型別範圍,有[all、queues、exchange] priority:整數優先順序 definition:json格式設定的策略
    rabbitmqctl set_policy [-p <vhostpath>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern> <definition(json)>
    
    #清除一個策略
    rabbitmqctl clear_policy [-p <vhostpath>] <name>
    
    # 列出已有的策略
    rabbitmqctl list_policies [-p <vhostpath>]
    
    # 【queues exchanges】
    
    # 返回queue的資訊,如果省略了-p引數,則預設顯示的是"/"vhosts的資訊。
    rabbitmqctl list_queues [-p <vhostpath>] [<queueinfoitem> ...]
    
    # 返回exchange的資訊
    rabbitmqctl list_exchanges [-p <vhostpath>] [<exchangeinfoitem> ...]
    
    # 返回繫結資訊
    rabbitmqctl list_bindings [-p <vhostpath>] [<bindinginfoitem> ...]
    
    # 返回連結資訊
    rabbitmqctl list_connections [<connectioninfoitem> ...]
    
    # 返回目前所有的channels
    rabbitmqctl list_channels [<channelinfoitem> ...]
    
    # 返回consumers
    rabbitmqctl list_consumers [-p <vhostpath>]
    
    # 顯示broker的狀態
    rabbitmqctl status
    
    # 顯示環境引數的資訊
    rabbitmqctl environment
    
    # 返回一個服務狀態report
    rabbitmqctl report
    
    # 返回一個服務狀態eval
    rabbitmqctl eval <expr>
  3. rabbitmqctl管理方式

    # 啟用rabbitmq_management
    rabbitmq-plugins enable rabbitmq_management
    # (不成功則先執行:rabbitmqctl start_app)
    
    # web訪問:
    http://[ip]:15672
    
    # api訪問:
    http://[ip]:15672/api
    
    # cli訪問:
    http://[ip]:15672/cli
  4. 領支付寶紅包支援作者

    掃碼領支付寶紅包


相關文章