一、介绍
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

三、集群部署
1.环境说明

操作系统IP地址主机名
CentOS-7.2172.16.120.101mq-disc-01
CentOS-7.2172.16.120.102mq-disc-02
CentOS-7.2172.16.120.103mq-ram-01

注:集群中节点有内存节点/磁盘节点两种类型
2.配置hosts
vim /etc/hosts

172.16.120.101 mq-disc-01172.16.120.102 mq-disc-02172.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

©著作权归作者所有:来自51CTO博客作者hxgd2014的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. LeetCode 图解 | 237.删除链表中的节点
  2. 动画:面试必刷之二叉树搜索第 K 大节点
  3. SSH AKS集群节点的几种方法(一)
  4. 浅谈集群版Redis和Gossip协议
  5. 动画:面试算法之求二叉树的下一节点
  6. PHP 微服务集群搭建 - Hyperf
  7. php+nodeJs+thrift协议,实现zookeeper节点数据自动发现
  8. Rancher首席架构师解读Fleet:它何以管理百万集群?
  9. Docker环境下秒建Redis集群,连SpringBoot也整上了!

随机推荐

  1. 求VB.net2010做一个简单数据库系统具体操
  2. SQL查询 - 从表中查找不同的用户
  3. 请高手看看我用C#编的连接SQL的哪里出了
  4. centos快速安装mysql
  5. centos7 nginx安装 及MySQL-python
  6. sqlserver各种注释语句的写法
  7. 关于php5连接sqlite的问题
  8. win7上python2.7连接mysql数据库
  9. 学习iPhone开发中 sqlite3的使用
  10. MySQL输入错误后如何取消