目录
4、浏览器输入10.12.153.133/haproxy查看rabbitmq的状态。
RabbiMQ的作用
- 解耦应用:通过使用RabbitMQ作为中间件,可以将不同的应用程序或服务分离开来,使得它们之间不再直接通信。这样可以降低系统各部分之间的依赖性,提高系统的可维护性和扩展性。
- 异步处理:RabbitMQ支持异步消息传递,这意味着发送者和接收者不必同时在线。发送者可以将消息发送到队列中,而接收者可以在稍后的时间处理这些消息。这种方式有助于提高系统的响应速度和吞吐量。
- 负载均衡:当有多个消费者同时监听一个队列时,RabbitMQ会自动将消息负载均衡地分配给这些消费者。这有助于平均分配工作负载,避免单个消费者过载。
- 临时存储:在系统故障或过载的情况下,RabbitMQ可以暂时存储无法立即处理的消息。一旦系统恢复正常,这些消息可以被重新处理。
- 系统解耦、异步处理、并发操作、流量削峰等。
RabbiMQ特点
可靠性
扩展性
高可用性
多种协议
多语言客户端
管理界面
插件机制
RabbitMQ模式
(1)单⼀模式。
(2)普通模式(默认的集群模式)。
(3) 镜像模式(把需要的队列做成镜像队列,存在于多个节点,属于RabbiMQ的HA⽅案,在对业务可靠性要求较⾼的场合中⽐较适⽤)。要实现镜像模式,需要先搭建⼀个普通集群模式,在这个模式的基础上再配置镜像模式以实现⾼可⽤。
集群基本概念
RabbitMQ的集群节点包括内存节点、磁盘节点。顾名思义内存节点就是将所有数据放在内存,磁盘节点将数据放在磁盘。如果在投递消息时,打开了消息的持久化,那么即使是内存节点,数据还是安全的放在磁盘。
一个rabbitmq集 群中可以共享 user,vhost,queue,exchange等,所有的数据和状态都是必须在所有节点上复制的。
ConnectionFactory(连接管理器):应用程序与Rabbit之间建立连接的管理器,程序代码中使用;
Channel(信道):消息推送使用的通道;
Exchange(交换器):用于接受、分配消息;
Queue(队列):用于存储生产者的消息;
RoutingKey(路由键):用于把生成者的数据分配到交换器上;
BindingKey(绑定键):用于把交换器的消息绑定到队列上;
Broker:简单来说就是消息队列服务器实体
vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离.
producer:消息生产者,就是投递消息的程序。
consumer:消息消费者,就是接受消息的程序。
user:用户
集群中的两种节点
1 内存节点:只保存状态到内存(一个例外的情况是:持久的queue的持久内容将被保存到disk)
2 磁盘节点:保存状态到内存和磁盘。
推荐
内存节点虽然不写入磁盘,但是它执行比磁盘节点要好。集群中,只需要一个磁盘节点来保存状态 就足够了
如果集群中只有内存节点,那么不能停止它们,否则所有的状态,消息等都会丢失。
RabbiMQ集群部署实例
1、准备环境
注:这⾥三台服务器都联⽹,另外RabbitMQ集群节点必须在同⼀⽹段⾥,如果是跨⼴域⽹,效果会变差。关闭防火墙和selinux
三台机器分别为:
10.12.153.133 rabbitmq-1
10.12.153.71 rabbitmq-2
10.12.153.72 rabbitmq-3
互相在/etc/hosts内做好域名解析
2、三个节点配置安装rabbitmq软件
rabbitmq 和erlang兼容版本
Erlang Version Requirements | RabbitMQ
注:所有机器都操作
erlang 版本选择
rabbitmq/erlang - Packages · packagecloud
1)安装依赖
# yum install -y epel-release gcc-c++ unixODBC unixODBC-devel openssl-devel ncurses-devel
2)安装erlang
# curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
这里我们示例erlang-21.3.8.21-1.el7.x86_64版本
# yum install erlang-21.3.8.21-1.el7.x86_64
测试:
# erl
成功回显如下
3)安装rabbitmq
rabbitmq 版本选择
Tags · rabbitmq/rabbitmq-server · GitHub
这里我们选择rabbitmq-server-3.7.10-1.el7
下载源码包并安装

4)启动
方法一:
# systemctl daemon-reload
# systemctl start rabbitmq-server
# systemctl enable rabbitmq-server
方式二:
# /sbin/service rabbitmq-server status ---查看状态
# /sbin/service rabbitmq-server start ---启动

5)开启rabbitmq的web访问界面:
rabbitmq-plugins enable rabbitmq_management
3、创建用户
注意:在一台机器操作
添加用户和密码
# rabbitmqctl add_user ztn 123456

设置为管理员
# rabbitmqctl set_user_tags ztn administrator

查看用户
# rabbitmqctl list_users

设置权限
此处设置权限时注意'.*'之间需要有空格 三个'.*'分别代表了conf权限,read权限与write权限
例如:当没有给newrain设置这三个权限前是没有权限查询队列,在ui界面也看不见

本文详细介绍了RabbitMQ的作用、特点、模式,阐述了集群基本概念和节点类型。重点讲解了RabbitMQ集群部署实例,包括准备环境、安装软件、创建用户等步骤,还介绍了镜像集群配置和负载均衡器HAProxy的安装配置,最后列举了RabbitMQ的常见命令。


被折叠的 条评论
为什么被折叠?



