1. 程式人生 > >Centos 7上部署Rabbitmq叢集

Centos 7上部署Rabbitmq叢集

rabbitmq訊息中介軟體裡面的概念和功能

publisher(生產者)   生產訊息的功能。

consumer(消費者)  訊息的處理者。

broker                      訊息中介軟體所在的主機

virtual host               一個rabbitmq裡面可以開啟多個virtual host,類似於spring mvc裡面filter的過濾,可以根據host的路徑來過濾許可權。

connection(連線)   生產者、消費者連線virtual host的tcp連線。

channel(通道)        一個連線裡面可以開啟多個channel,達到複用連線的作用。

exchange(訊息分發) 路由交換訊息。生產者生產的訊息會發送給exchange,exchange來覺得這個訊息傳送給哪個或哪幾個佇列,作為訊息分發的角色。 

rabbitmq訊息轉發模式的多樣性也是在exchange上提現出來的。 

這裡需要注意的地方,exchange只是訊息轉發,不會儲存訊息。

routing key(訊息分發依據) exchange根據routing key在進行訊息分發,分發到不同的佇列

queue(佇列,儲存訊息的容器)  經過exchange路由後,訊息會儲存到queue中,預設情況下,訊息會先儲存到記憶體,而後會持久化到硬碟 

注意,在訊息轉發時,佇列不是必須的,可以省略掉佇列,從exchange直接到消費者,訊息不會儲存到rabbitmq上。

安裝前準備工作

所有叢集主機相互新增IP到hosts裡,我這裡使用雙節點叢集

#sudo vim /etc/hosts

1.1.1.1   rabbitmq01

1.1.1.2  rabbitmq02

安裝 Erlang

新增yum倉庫源

#sudo vim/etc/yum.repos.d/erlang.repo

[rabbitmq-erlang]

name=rabbitmq-erlang

baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/6

gpgcheck=1

gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc

repo_gpgcheck=0

enabled=1

重新整理Yum快取

#sudo yum makecache

安裝Erlang

#sudo yum install -y erlang

下載rabbitmq

#curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

安裝rabbitmq

sudo yum install rabbitmq-server-3.7.4-1.el6.noarch -y

開啟rabbitmq外掛

#sudo rabbitmq-plugins enable rabbitmq_management

更改配置檔案

#sudo cd /var/lib/rabbitmq/

#sudo chmod u+w .erlang.cookie

#sudo vim .erlang.cookie主節點無須更改(從節點配置:將主節點的檔案拷貝過來)

注意:erlang.cookie檔案需要與主節點的一致,

#sudo chmod u-w .erlang.cookie

#sudo chown rabbitmq:rabbitmq .erlang.cookie

此檔案的許可權需要設定為400

新建rabbitmq配置檔案

#sudo vim /etc/rabbitmq/rabbitmq.com

[

{rabbit, [

    {loopback_users, []},

    {heartbeat, 30},

    {vm_memory_high_watermark, 0.4},

    {disk_free_limit, {mem_relative, 2.0}}

]}

].

啟動rabbitmq

#service rabbitmq-server start

從節點加入到叢集中

#sudo rabbitmqctl stop_app

#sudo rabbitmqctl join_cluster [email protected]

#sudo rabbitmqctl start_app

檢視叢集狀態

#sudo rabbitmqctl cluster_status

叢集將配置好,可以過瀏覽器設定Users,Virtual Hosts, policies

http://1.1.1.1:15672  預設賬號密碼為:guest

image.png

點選Add a user,輸入賬號,密碼,選擇Monitoring,點選Add  User

image.png

點選Virtual Hosts,輸入剛才建立的使用者,點選Add  virtual host

image.png

出現如下框,點選Set permission,virtual host將建立成功

image.png

建立policies

點選Add /update a policy

image.png

填入如圖內容,點選Add policy,policies建立成功