1. 程式人生 > >rabbitmq+haproxy 叢集高可用一

rabbitmq+haproxy 叢集高可用一


環境
主機 192.168.2.47      hidden1(主機名)
主機 192.168.2.48      hidden2 (主機名)
介紹:1, 先兩臺主機更改好主機名 2,部署單機rabbitmq   3,然後再加入 叢集

一,rabbitmq 單機安裝(兩臺主機都做同樣的操作)
1. 安裝erlang

[[email protected] ~]yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git

RabbbitMQ基與erlang開發,首先安裝erlang,這裡採用yum方式。

 [

[email protected] ~]vim /etc/yum.repos.d/rabbitmq-erlang.repo
````
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
````
[[email protected] ~] yum install erlang

需要安裝驗證簽名的公鑰;
[
[email protected]
~] rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
2. 安裝RabbitMQ
1)下載RabbitMQ
[[email protected] ~] wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.4/rabbitmq-server-3.7.4-1.el7.noarch.rpm
2)匯入認證簽名
[[email protected] ~] rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
3)安裝
yum安裝使用已下載的rpm包本地安裝,但可能會涉及到取依賴包,同樣需要匯入認證簽名;
下載安裝請見:http://www.rabbitmq.com/install-rpm.html

[[
[email protected]
~] yum install rabbitmq-server-3.7.4-1.el7.noarch.rpm -y
3.配置檔案 rabbitmq.conf
手工建目錄,將配置樣例檔案拷貝到配置目錄並改名

[[email protected] ~] mkdir -p /etc/rabbitmq
[[email protected] ~] cp /usr/share/doc/rabbitmq-server-3.7.4/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
另外還可以建環境配置檔案:
[[email protected] ~]/etc/rabbitmq/rabbitmq-env.conf
````
RABBITMQ_MNESIA_BASE=/home/data/rabbitmq/data
RABBITMQ_LOG_BASE=/home/data/rabbitmq/log
RABBITMQ_PLUGINS_DIR=/usr/lib/rabbitmq/lib/rabbitmq_server-3.7.4/plugins
````
4. 啟動
1)設定開機啟動
[[email protected] ~] systemctl enable rabbitmq-server
2)啟動
[[email protected] ~] systemctl start rabbitmq-server
5. 驗證
1)檢視狀態
[[email protected] ~] systemctl status rabbitmq-server
6. 安裝web管理外掛
management plugin預設就在RabbitMQ的釋出版本中,enable即可 服務重啟,配置生效
[[email protected] ~] rabbitmq-plugins enable rabbitmq_management
7. 設定iptables
tcp4369埠用於叢集鄰居發現;
tcp5671,5672埠用於AMQP 0.9.1 and 1.0 clients使用;
tcp15672埠用於http api與rabbitadmin訪問,後者僅限在management plugin開啟時;
tcp25672埠用於erlang分散式節點/工具通訊
[[email protected] ~] vim /etc/sysconfig/iptables
````
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5671 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT
````
[[email protected] ~] service iptables restart
8. Management plugin登入賬
1)guest賬號
abbit預設只有guest賬號,但為了安全,guest賬號只能從localhost登入,如果需要guest賬號可以遠端登入,可以設定rabbitmq.conf檔案:
根據說明,取消第64行引數的註釋與句末的符號;建議不開啟guest賬號的遠端登入;
服務重啟,配置生效。
[[email protected] ~] vim /etc/rabbitmq/rabbitmq.config
2)CLI建立登入賬號
“rabbitmqctl add_user”新增賬號,並設定密碼
[[email protected] ~] rabbitmqctl add_user admin [email protected]
”rabbitmqctl set_user_tags”設定賬號的狀態
[[email protected] ~] rabbitmqctl set_user_tags admin administrator
“rabbitmqctl set_permissions”設定賬號的許可權

[[email protected] ~] rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

“rabbitmqctl list_users”列出賬號
[[email protected] ~] rabbitmqctl list_users

9. Management plugin登入驗證
瀏覽器訪問:http://192.168.2.47:15672