RabbitMQ服務器部署

一、介紹
RabbitMQ本身是基於Erlang編寫,Erlang語言天生具備分佈式特性(通過同步Erlang集羣各節點的erlang.cookie來實現),因此,RabbitMQ天然支持集羣。RabbitMQ是一個開源的AMQP實現,支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。
二、安裝配置
1.配置epel
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.安裝erlang
yum install -y erlang socat
3.下載rabbitmq
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
4.安裝
rpm -ivh rabbitmq-server-3.6.10-1.el7.noarch.rpm
5.啓動服務
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
6.開啓web管理接口
rabbitmq-plugins enable rabbitmq_management
7.驗證
地址:http://172.16.120.101:15672/
用戶:guest
密碼:guest
RabbitMQ服務器部署



















三、集羣部署
1.環境說明

操作系統 IP地址 主機名
CentOS-7.2 172.16.120.101 mq-disc-01
CentOS-7.2 172.16.120.102 mq-disc-02
CentOS-7.2 172.16.120.103 mq-ram-01

注:集羣中節點有內存節點/磁盤節點兩種類型
2.配置hosts
vim /etc/hosts

172.16.120.101 mq-disc-01
172.16.120.102 mq-disc-02
172.16.120.103 mq-ram-01

3.安裝
安裝過程見上文
4.同步cookie文件
cd /var/lib/rabbitmq/
scp .erlang.cookie 172.16.120.102:/var/lib/rabbitmq
scp .erlang.cookie 172.16.120.103:/var/lib/rabbitmq
注:文件權限爲400,屬主與屬組爲rabbitmq
5.以mq-disc-01爲主節點,在另外兩臺機器上執行
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@mq-disc-01
rabbitmqctl start_app
6.設置內存節點
rabbitmqctl change_cluster_node_type ram
7.查看集羣狀態
rabbitmqctl cluster_status
8.設置策略爲自動同步所有節點
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
9.查看策略
rabbitmqctl list_policies
四、常用命令
#查看當前所有用戶
rabbitmqctl list_users
#刪除用戶
rabbitmqctl delete_user guest
#添加用戶
rabbitmqctl add_user admin passwd
#設置用戶tag
rabbitmqctl set_user_tags admin administrator
#賦予用戶默認vhost的全部操作權限
rabbitmqctl set_permissions -p / username “.” “.” “.*”
#查看用戶的權限
rabbitmqctl list_user_permissions username
#生成隊列
rabbitmqadmin declare queue name=test durable=true
#生成消息
rabbitmqadmin publish routing_key=test payload="this is a testing"
#查看隊列
rabbitmqadmin list queues
#消費消息
rabbitmqadmin get queue=test requeue=true
#刪除隊列
rabbitmqadmin -q delete queue name=test








































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