RabbitMQ部署

使用源码包安装
安装rabbitmq

xz -d rabbitmq-server-generic-unix-3.6.1.tar.xz
tar –xf rabbitmq-server-generic-unix-3.6.1.tar
mv rabbitmq_server-3.6.1/ rabbitmq
useradd –d /app/rabbitmq rabbitmq
chown –R rabbitmq.rabbitmq /app/rabbitmq

配置环境变量

Vim /etc/profile
#SET ERLANG
export PATH=$PATH:/usr/erlang/bin
#SET RABBITMQ
export PATH=$PATH:/usr/rabbitmq/sbin
source /etc/profile

启动mq

cd /app/rabbitmq/sbin
rabbitmq-server –detached	启动mq

启动插件

./rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述
添加登录用户

rabbitmqctl add_user guest guest 添加用户前面用户后面密码
rabbitmqctl set_permissions -p / guest ".*" ".*" ".*" 添加权限
rabbitmqctl set_user_tags guest administrator 修改用户角色

rabbitmq 集群搭建 –3台

按照上面方式安装rabbitmq并启动
添加hosts解析(3台)
10.75.3.116 server1
10.75.3.16 server2
10.75.3.12 server3
添加解析完后拷贝erlang.cookie至其他节点中

scp /var/lib/rabbitmq/.erlang.cookie server2:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie server3:/var/lib/rabbitmq/

通过rabbitmqctl工具加入集群节点
在server2和server3节点中执行

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@server1
rabbitmqctl start_app

在server1中查看

rabbitmqctl cluster_status

在这里插入图片描述

1、如果关闭了集群中的所有节点,则需要确保在启动的时候最后关闭的那个节点是第一个启动的。如果第一个启动的不是最后关闭的节点,那么这个节点会等待最后关闭的节点启动。这个等待时间是30秒,如果没有等到,那么这个先启动的节点也会失败。
2、如果最后一个关闭的节点最终由于某些异常而无法启动,则可以通过rabbitmqctl forget_cluster_node 命令来将此节点剔出当前集群。如果集群中的所有节点由于某些非正常因素,比如断电而关闭,那么集群中的节点都会认为还有其他节点在它后面关闭,此时需要调用rabbitmqctl force_boot命令来启动一个节点,之后集群才能正常启动。
3、如果集群已经创建好了,那么也可以使用rabbitmqctl change_cluster_node_type {disc,ram}命令来切换节点的类型,其中disc表示磁盘节点,而ram表示内存节点,切换方式如下所示

在server2中可执行修改为磁盘节点

rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app

server3中修改为内存节点

rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app

在server1中查看rabbitmq状态
在这里插入图片描述

这是因为管理的web未启动导致
rabbitmq-plugins enable rabbitmq_management 启动后在检测

在这里插入图片描述

Rabbitmq (HA方案)

镜像模式:把需要的队列做成镜像队列,消息存在于多个节点,属于RabbitMQ的HA方案。
优点:镜像队列集群与普通集群不同之处在于,queue中的消息数据会在镜像节点中同步,消息写入队列,都交给master节点进行写入,然后同步至各slave。当master当机后,内部会从slave节点重新选举出一个新的master节点,从而有效的防止消息丢失及服务不可用等问题。
缺点:正所谓凡事有利亦有弊,正是因为涉及到主节点之间消息的同步,当内部需要同步的镜像队列较多,数据量很大的时候,磁盘IO,网络带宽等都会成为master节点的瓶颈,进而影响整个集群的性能。并且由于各节点之间消息的同步(即各镜像队列数据完全一致),也丧失了通过新增节点线性增加性能(cpu、内存)和容量(内存、磁盘)的能力。
配置方式

镜像队列主要是通过添加相应的policy来完成的,配置参数如下:
策略名称为ha-allqueue,策略模式为 all 即复制到所有节点,包含新增节点,策略正则表达式为 “^” 表示所有匹配所有队列名称。

rabbitmqctl set_policy -p / ha-allqueue "^" '{"ha-mode":"all"}'

新建一个队列查看会发现有个+2
在这里插入图片描述
清理制定queue对列数据
cd 至sbin下

rabbitmqctl purge_queue queue_name

这里清理时察看下管理端是否做了集群,如做集群需清理集群所在机器的该queue
全部清理 (这里一般不使用)

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

检测对列数

./rabbitmqctl list_queues messages_ready | awk 'NR>=2{print }'| awk '{sum+=$1}END{print sum}'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值