日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux CenOS7下安装RabbitMQ

發布時間:2025/3/19 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux CenOS7下安装RabbitMQ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、安裝依賴環境erlang

  • 在 RabbitMQ Erlang Version Requirements — RabbitMQ 頁面查看安裝rabbitmq需要安裝erlang對應的版本
  • 在 https://github.com/rabbitmq/erlang-rpm/releases 頁面找到需要下載的erlang版本,erlang-*.centos.x86_64.rpm就是centos版本的。
  • 復制下載地址后,使用wget命令下載\
  • wget -P /home/download https://github.com/rabbitmq/erlang-rpm/releases/download/v21.2.3/erlang-21.2.3-1.el7.centos.x86_64.rpm

  • 安裝 Erlang
  • sudo rpm -Uvh /home/download/erlang-21.2.3-1.el7.centos.x86_64.rpm

  • 安裝 socat
  • sudo yum install -y socat

    二、安裝RabbitMQ

  • 在官方下載頁面找到CentOS7版本的下載鏈接,下載rpm安裝包
  • wget -P /home/download https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.9/rabbitmq-server-3.7.9-1.el7.noarch.rpm

    提示:可以在Tags · rabbitmq/rabbitmq-server · GitHub下載歷史版本

    2. 安裝RabbitMQ

    sudo rpm -Uvh /home/download/rabbitmq-server-3.7.9-1.el7.noarch.rpm

    三、啟動和關閉

    • 啟動服務

    sudo systemctl start rabbitmq-server

    • 查看狀態

    sudo systemctl status rabbitmq-server

    • 設置開機啟動

    sudo systemctl enable rabbitmq-server

    四、開啟Web管理插件

  • 開啟插件
  • rabbitmq-plugins enable rabbitmq_management

    2. 添加用戶

    rabbitmqctl add_user admin admin

    3. 為用戶分配操作權限

    rabbitmqctl set_user_tags admin administrator

    4. 為用戶分配資源權限

    rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

    五、防火墻添加端口

    • RabbitMQ 服務啟動后,還不能進行外部通信,需要將端口添加都防火墻
  • 添加端口
  • sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent

    2. 重啟防火墻

    sudo firewall-cmd --reload

    多機多節點集群部署

    一、 環境準備

    • 準備三臺安裝好RabbitMQ 的機器,安裝方法見 安裝步驟
      • 10.10.1.41
      • 10.10.1.42
      • 10.10.1.43

    提示:如果使用虛擬機,可以在一臺VM上安裝好RabbitMQ后,創建快照,從快照創建鏈接克隆,會節省很多磁盤空間

    二、修改配置文件

  • 修改10.10.1.41機器上的/etc/hosts文件
  • sudo vim /etc/hosts

  • 添加IP和節點名
  • 10.10.1.41 node1

    10.10.1.42 node2

    10.10.1.43 node3

  • 將10.10.1.41上的hosts文件復制到另外兩臺機器上
  • sudo scp /etc/hosts root@node2:/etc/

    sudo scp /etc/hosts root@node3:/etc/

    說明:命令中的root是目標機器的用戶名,命令執行后,可能會提示需要輸入密碼,輸入對應用戶的密碼就行了

  • 將10.10.1.41上的/var/lib/rabbitmq/.erlang.cookie文件復制到另外兩臺機器上
  • scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/

    scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/

    提示:如果是通過克隆的VM,可以省略這一步

    三、防火墻添加端口

    • 給每臺機器的防火墻添加端口
  • 添加端口
  • sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent

  • 重啟防火墻
  • sudo firewall-cmd --reload

    四、啟動RabbitMQ

  • 啟動每臺機器的RabbitMQ
  • sudo systemctl start rabbitmq-server

    或者

    rabbitmq-server -detached

  • 將10.10.1.42加入到集群
  • # 停止RabbitMQ 應用

    rabbitmqctl stop_app

    # 重置RabbitMQ 設置

    rabbitmqctl reset

    # 加入到集群

    rabbitmqctl join_cluster rabbit@node1 --ram

    # 啟動RabbitMQ 應用

    rabbitmqctl start_app

  • 查看集群狀態,看到running_nodes,[rabbit@node1,rabbit@node2]表示節點啟動成功
  • rabbitmqctl cluster_status

    提示:在管理界面可以更直觀的看到集群信息

  • 將10.10.1.43加入到集群
  • # 停止 RabbitMQ 應用

    rabbitmqctl stop_app

    # 重置 RabbitMQ 設置

    rabbitmqctl reset

    # 節點加入到集群

    rabbitmqctl join_cluster rabbit@node1 --ram

    # 啟動 RabbitMQ 應用

    rabbitmqctl start_app

  • 重復地3步,查看集群狀態
  • 單機多節點部署

    一、環境準備

    • 準備一臺已經安裝好RabbitMQ 的機器,安裝方法見 安裝步驟
      • 10.10.1.41

    二、啟動RabbitMQ

  • 在啟動前,先修改RabbitMQ 的默認節點名(非必要),在/etc/rabbitmq/rabbitmq-env.conf增加以下內容
  • # RabbitMQ 默認節點名,默認是rabbit

    NODENAME=rabbit1

  • RabbitMQ 默認是使用服務的啟動的,單機多節點時需要改為手動啟動,先停止運行中的RabbitMQ 服務
  • sudo systemctl stop rabbitmq-server

  • 啟動第一個節點
  • rabbitmq-server -detached

  • 啟動第二個節點
  • RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached

  • 啟動第三個節點
  • RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbit3 rabbitmq-server -detached

  • 將rabbit2加入到集群
  • # 停止 rabbit2 的應用

    rabbitmqctl -n rabbit2 stop_app

    # 重置 rabbit2 的設置

    rabbitmqctl -n rabbit2 reset

    # rabbit2 節點加入到 rabbit1的集群中

    rabbitmqctl -n rabbit2 join_cluster rabbit1 --ram

    # 啟動 rabbit2 節點

    rabbitmqctl -n rabbit2 start_app

  • 將rabbit3加入到集群
  • # 停止 rabbit3 的應用

    rabbitmqctl -n rabbit3 stop_app

    # 重置 rabbit3 的設置

    rabbitmqctl -n rabbit3 reset

    # rabbit3 節點加入到 rabbit1的集群中

    rabbitmqctl -n rabbit3 join_cluster rabbit1 --ram

    # 啟動 rabbit3 節點

    rabbitmqctl -n rabbit3 start_app

  • 查看集群狀態,看到{running_nodes,[rabbit3@node1,rabbit2@node1,rabbit1@node1]}說明節點已啟動成功。
  • rabbitmqctl cluster_status

    提示:在管理界面可以更直觀的看到集群信息

    三、防火墻添加端口

    • 需要將每個節點的端口都添加到防火墻
  • 添加端口
  • sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=5673/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=25673/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=15673/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=5674/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=25674/tcp --permanent

    sudo firewall-cmd --zone=public --add-port=15674/tcp --permanent

  • 重啟防火墻
  • sudo firewall-cmd --reload

    鏡像隊列模式集群

    • 鏡像隊列屬于RabbitMQ 的高可用方案,見:Classic Queue Mirroring — RabbitMQ
    • 通過前面的步驟搭建的集群屬于普通模式集群,是通過共享元數據實現集群
    • 開啟鏡像隊列模式需要在管理頁面添加策略,添加方式:
    • 進入管理頁面 -> Admin -> Policies(在頁面右側)-> Add / update a policy
    • 在表單中填入:

    ?name: ha-all

    Pattern: ^

    Apply to: Queues

    Priority: 0

    Definition: ha-mode = all

    參數說明

    name: 策略名稱,如果使用已有的名稱,保存后將會修改原來的信息

    Apply to:策略應用到什么對象上

    Pattern:策略應用到對象時,對象名稱的匹配規則(正則表達式)

    Priority:優先級,數值越大,優先級越高,相同優先級取最后一個

    Definition:策略定義的類容,對于鏡像隊列的配置來說,只需要包含3個部分: ha-mode 、ha-params 和 ha-sync-mode。其中,ha-sync-mode是同步的方式,自動還是手動,默認是自動。ha-mode 和 ha-params 組合使用。組合方式如下:

    ha-mode

    ha-params

    說明

    all

    (empty)

    隊列鏡像到集群類所有節點

    exactly

    count

    隊列鏡像到集群內指定數量的節點。如果集群內節點數少于此值,隊列將會鏡像到所有節點。如果大于此值,而且一個包含鏡像的節點停止,則新的鏡像不會在其它節點創建。

    nodes

    nodename

    隊列鏡像到指定節點,指定的節點不在集群中不會報錯。當隊列申明時,如果指定的節點不在線,則隊列會被創建在客戶端所連接的節點上。

    • 鏡像隊列模式相比較普通模式,鏡像模式會占用更多的帶寬來進行同步,所以鏡像隊列的吞吐量會低于普通模式
    • 但普通模式不能實現高可用,某個節點掛了后,這個節點上的消息將無法被消費,需要等待節點啟動后才能被消費

    總結

    以上是生活随笔為你收集整理的Linux CenOS7下安装RabbitMQ的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。