Centos6下RabbitMQ學習(零)——集羣搭建(非高可用)

rabbitmq的官方文檔總目錄

https://www.rabbitmq.com/documentation.html

1 單點搭建

RabbitMQ是先啓動單個節點,然後用命令組成集羣的,所以從單點搭建開始

我是用官方編譯好的包,解包即用,當然,RabbitMQ是用erlang編寫的,我們肯定也要安裝erlang

官方文檔https://www.rabbitmq.com/install-generic-unix.html

2.1 erlang安裝

先安裝erlang,RabbitMQ官方提供了一個0依賴的erlang安裝包

https://www.rabbitmq.com/install-rpm.html頁面中有一節是Zero-dependency Erlang from RabbitMQ,就提供了這個安裝包,下載地址https://packagecloud.io/rabbitmq/erlang

注意el6和el7對應centos6或者7,下載自己系統的版本

sudo rpm -hvi erlang-21.2.6-1.el6.x86_64.rpm  # 安裝erlang
erl  # 測試是否能打開erlang shell

你應該能打開一個erlang的shell界面,這樣表示erlang安裝好了

2.2 RabbitMQ安裝

然後就可以下載已經編譯好的RabbitMQ,任選一個地方下載

tar -xvf rabbitmq-server-generic-unix-3.7.13.tar.xz
cd rabbitmq_server-3.7.13
./sbin/rabbitmq-server -detached  # 後臺啓動
./rabbitmq-plugins enable rabbitmq_management  # 開啓web服務

這個警告是正常的,不影響使用

打開https://IP:5672,RabbitMQ默認的賬戶密碼是guest、guest,輸入賬號密碼,就可以看見這樣的界面了

在web頁面可以完成很多配置工作,比命令行直觀很多

注意這個guest賬號只能在localhost上使用,所以我們現在創建一個自己的用戶,tags表示不同的操作權限

點擊已經存在於列表中的用戶名,可以進入用戶詳細配置,比如配置vhost的權限

 也可以通過命令行添加用戶,配置權限

./rabbitmqctl add_user 用戶名 密碼
./rabbitmqctl set_user_tags 用戶名 administrator  # 設置該用戶爲管理員角色
./rabbitmqctl set_permissions -p 虛擬主機 用戶名 '.*' '.*' '.*'  # 讓用戶擁有某虛擬主機的配置、寫、讀權限

2 非高可用集羣搭建

首先,每臺服務器上的erlang和RabbitMQ必須是相同的版本,其次服務器之間是通過Erlang message-passing傳遞信息的,所以每臺服務器必須擁有相同的erlang cookie

erlang cookie在home目錄的.erlang.cookie裏,保持每個服務器的這個值一致即可

我們現在啓動三個單點服務器,執行命令獲取每個服務器的名稱

./rabbitmqctl cluster_status

輸出的集羣狀態,只有一個節點就是本地節點,節點名是rabbit@hostname這種形式,集羣名和節點名一致

現在把節點2、3加入到節點1中形成集羣,生成的集羣名字會和節點1的節點名一致。在節點2、3分別執行下面的命令

./rabbitmqctl stop_app  # 停止RabbitMQ應用
./rabbitmqctl reset  # 節點恢復到初始狀態,刪除一切數據和配置,從現有集羣中移除
./rabbitmqctl join_cluster rabbit@hostname1 # 加入節點1集羣
./rabbitmqctl start_app  # 開啓RabbitMQ應用

最後到節點1再次查看集羣狀態,可以看到三臺節點,當然節點2、3都執行了reset命令,現在集羣裏的數據、配置、用戶信息等都是節點1的

到web上看一下,三個節點,集羣就搭建成功了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章