rabbitmq集群简单安装

RabbiMQ模式 RabbitMQ模式大概分为以下三种: (1)单一模式。 (2)普通模式(默认的集群模式)。 (3) 镜像模式(把需要的队列做成镜像队列,存在于多个节点,属于RabbiMQ的HA方案,在对业务可靠性要求较高的场合中比较适用)。 要实现镜像模式,需要先搭建一个普通集群模式,在这个模式的基础上再配置镜像模式以实现高可用。 RabbiMQ特点 RabbitMQ的集群节点包括内存节点、磁盘节点。RabbitMQ支持消息的持久化也就是数据写在磁盘上,最合适的方案就是既有内存节点,又有磁盘节点。

1.环境信息

1.1 服务器信息

root@upsmiddelvm01:~# cat /etc/issue
Ubuntu 16.04.6 LTS \n \l

root@upsmiddelvm01:~# cat /etc/hosts
127.0.0.1   localhost

10.0.162.11 upsmiddelvm01
10.0.162.12 upsmiddelvm02
10.0.162.13 upsmiddelvm03

root@upsmiddelvm01:~# uname -r
4.4.0-165-generic

1.2 服务角色规划

IP地址 主机名 操作系统 用途
10.0.162.11 upsmiddelvm01 Ubuntu 16.04.6 内存节点
10.0.162.12 upsmiddelvm02 Ubuntu 16.04.6 磁盘节点
10.0.162.13 upsmiddelvm03 Ubuntu 16.04.6 内存节点

2 安装rabbitmq

2.1 下载rabbitmq包

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server_3.6.5-1_all.deb

2.2 安装rabbitmq

sudo dpkg -i rabbitmq-server_3.6.5-1_all.deb 
sudo apt-get -f install 
注:dpkg -i pkg.deb  #手动安装软件包(不能解决软依赖性问题,可以用apt-get -f install解决)

2.3 设置相同的.erlang.cookie

scp /var/lib/rabbitmq/.erlang.cookie   root@10.0.162.12:/var/lib/rabbitmq
scp /var/lib/rabbitmq/.erlang.cookie   root@10.0.162.13:/var/lib/rabbitmq

2.4 启动rabbitmq服务

sudo service rabbitmq-server restart |stop |start

3 创建rabbitmq集群

把10.0.162.11  10.0.162.13加入10.0.162.12并设置 为内存节点
sudo rabbitmqctl  stop_app
sudo rabbitmqctl  join_cluster --ram rabbit@upsmiddelvm02
sudo rabbitmqctl  start_app

4 查看rabbitmq集群状态

root@upsmiddelvm02:~# rabbitmqctl cluster_status
Cluster status of node rabbit@upsmiddelvm02 ...
[{nodes,[{disc,[rabbit@upsmiddelvm02]},
         {ram,[rabbit@upsmiddelvm03,rabbit@upsmiddelvm01]}]},
 {running_nodes,[rabbit@upsmiddelvm01,rabbit@upsmiddelvm03,
                 rabbit@upsmiddelvm02]},
 {cluster_name,<<"rabbit@upsmiddelvm02">>},
 {partitions,[]},
 {alarms,[{rabbit@upsmiddelvm01,[]},
          {rabbit@upsmiddelvm03,[]},
          {rabbit@upsmiddelvm02,[]}]}]
root@upsmiddelvm02:~# 

5 设置集群为镜像集群

#将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态一致。
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

例
rabbitmqctl set_policy -p my-vhosts my-policy"^" '{"ha-mode":"all"}'

命令说明:
在vhost名称为“my-vhosts” 上创建了一个策略,策略名称为my-policy,
策略正则表达式为 “^” 表示所有匹配所有队列名称,
策略模式为 all 即复制到所有节点,包含新增节点。

6 rabbitmq常用命令

1.创建用户
sudo rabbitmqctl  add_user  suixiaofeng  suixiaofeng
sudo rabbitmqctl set_user_tags suixiaofeng  administrator
sudo rabbitmqctl   set_permissions -p / suixiaofeng ".*" ".*" ".*"
sudo rabbitmqctl  list_users
2.创建vhost
rabbitmqctl add_vhost  /dev 
rabbitmqctl   set_permissions  -p /dev  suixiaofeng  ".*" ".*" ".*"
rabbitmqctl  list_permissions -p /dev

3.参数调整
配置最大连接限制
要限制vhost vhost_name中并发客户端连接的 总数,请使用以下限制定义:
rabbitmqctl set_vhost_limits -p vhost_name'{“max-connections”:256}'
要禁用到虚拟主机的客户端连接,请将限制设置为零:
rabbitmqctl set_vhost_limits -p vhost_name'{“max-connections”:0}'
要解除限制,请将其设置为负值:
rabbitmqctl set_vhost_limits -p vhost_name'{“max-connections”:-1}'
配置最大队列数
要限制vhost vhost_name中的队列 总数,请使用以下限制定义:
rabbitmqctl set_vhost_limits -p vhost_name'{“max-queues”:1024}'
要解除限制,请将其设置为负值:
rabbitmqctl set_vhost_limits -p vhost_name'{“max-queues”:-1}'

4.启动web
sudo rabbitmq-plugins    enable rabbitmq_management
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: