1. 程式人生 > >RabbitMQ映象叢集搭建

RabbitMQ映象叢集搭建

RabbitMQ 官網 https://www.rabbitmq.com/ 小編使用的系統環境是CentOS7.4 | 系統 | IP | hostname | | --------- | ------- | ---------- | | CentOS7.4 | 1.1.1.1 | hostname01 | | CentOS7.4 | 1.1.1.2 | hostname02 | ## 下載 **格外強調,注意RabbitMQ與erlang的版本是否匹配** 檢視匹配網址 https://www.rabbitmq.com/which-erlang.html - erlang22.3 - rabbitmq3.8.3 ## 安裝 ### 安裝erlang 解壓erlang ``` tar -zxvf otp_src_22.3.tar.gz ``` 準備erlang編譯工具 ``` yum install make gcc gcc-c++ build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel ``` 建立資料夾 ``` mkdir -p /usr/local/erlang ``` 編譯 ``` cd otp_src_22.3 ./configure --prefix=/usr/local/erlang --without-javac make && make install ``` 環境變數配置 ``` vi /etc/profile ``` 配置 ``` export ERLANG_HOME=/usr/local/erlang export PATH=${ERLANG_HOME}/bin:${PATH} ``` 重新整理配置 ``` source /etc/profile ``` 建立軟連 ``` ln -s /usr/local/erlang/bin/erl /usr/local/bin/erl ``` 測試 ``` erl ``` ### 安裝 socat ``` yum install -y socat ``` ### 安裝rabbitmq ``` rpm -ivh --nodeps rabbitmq-server-3.8.3-1.el7.noarch.rpm ``` ### 修改配置 ``` vi /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/ebin/rabbit.app ``` 修改 loopback_users 中的 [<<"guest">>], 只保留 [] heartbeat 為 5 啟用web管理頁面 ``` rabbitmq-plugins enable rabbitmq_management ``` ### 啟動rabbitmq 啟動 ``` rabbitmq-server start & ``` 啟動內容檢查 ``` rabbitmq-plugins list ``` ## 開始叢集 RabbitMQ事基於erlang的,所以部署RabbitMQ叢集,首先要處理erlang的cookie。 ### 配置從機的cookie 首先在主節點查詢cookie,一般cookie會存在兩個位置 第一個位置在 ``` ll -la /root ``` ![](https://img2020.cnblogs.com/blog/1275417/202005/1275417-20200529145739127-1898268902.jpg) 第二個位置在 ``` ll -la /var/lib/rabbitmq/ ``` ![](https://img2020.cnblogs.com/blog/1275417/202005/1275417-20200529145750503-1594315318.jpg) 為了避免錯誤,將上面兩個cookie分別複製到從機上的對應位置。 注意點:複製完成後,將檔案許可權改為400 ``` chmod 400 .erlang.cookie ``` ### 配置hosts 分別在主機、從機上配置hosts 查詢hostname ``` cat /etc/hostname ``` 配置hosts ``` vi /etc/hosts ``` 增加如下配置 ``` # 主ip + 主hostname 1.1.1.1 hostname01 # 從ip + 從hostname 1.1.1.2 hostname02 ``` ### 配置叢集 這一步僅僅是在從機上操作,主機啟動RabbitMQ即可。 ``` # 後臺啟動從機 ./rabbitmq-server -deched ./rabbitmqctl stop_app # 這裡的hostname01是指主機的hostname ./rabbitmqctl join_cluster rabbit@hostname01 ./rabbitmqctl start_app ``` 至此,RabbitMQ叢集配置已完成。 ## 驗證 在圖形化介面即可看到叢集結果 ![](https://img2020.cnblogs.com/blog/1275417/202005/1275417-20200529145707612-18619317