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
點選Add a user,輸入賬號,密碼,選擇Monitoring,點選Add User
點選Virtual Hosts,輸入剛才建立的使用者,點選Add virtual host
出現如下框,點選Set permission,virtual host將建立成功
建立policies
點選Add /update a policy
填入如圖內容,點選Add policy,policies建立成功