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

猜你喜欢

转载自blog.51cto.com/7965676/2597285