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 rabbit@rabbitmq01 #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創建成功