常用的消息中间件RabbitMQ

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

目录

RabbiMQ的作用

RabbiMQ特点

RabbitMQ模式

集群基本概念

集群中的两种节点

RabbiMQ集群部署实例

1、准备环境

2、三个节点配置安装rabbitmq软件

​编辑

3、创建用户

4、开启用户远程登录:

5、查看端口

6、测试

7、部署集群

8、查看集群状态

9、测试浏览器访问ip:15672

RabbitMQ镜像集群配置

创建镜像集群:

rabbitmq-1执行

三台机器一块执行

再次查看队列已经同步到其他两台节点

 镜像队列策略设置说明

实验创建一个vhost,并给用户权限添加队列

安装并配置负载均衡器HAProxy

1、在rabbitmq-1服务器上安装HAProxy

2、修改 /etc/haproxy/haproxy.cfg

备份配置文件

编辑配置文件

 3、启动haproxy

4、浏览器输入10.12.153.133/haproxy查看rabbitmq的状态。

5、输入账号密码登录

rabbitmq的常见命令

RabbiMQ的作用

  1. 解耦应用:通过使用RabbitMQ作为中间件,可以将不同的应用程序或服务分离开来,使得它们之间不再直接通信。这样可以降低系统各部分之间的依赖性,提高系统的可维护性和扩展性。
  2. 异步处理:RabbitMQ支持异步消息传递,这意味着发送者和接收者不必同时在线。发送者可以将消息发送到队列中,而接收者可以在稍后的时间处理这些消息。这种方式有助于提高系统的响应速度和吞吐量。
  3. 负载均衡:当有多个消费者同时监听一个队列时,RabbitMQ会自动将消息负载均衡地分配给这些消费者。这有助于平均分配工作负载,避免单个消费者过载。
  4. 临时存储:在系统故障或过载的情况下,RabbitMQ可以暂时存储无法立即处理的消息。一旦系统恢复正常,这些消息可以被重新处理。
  5. 系统解耦、异步处理、并发操作、流量削峰等

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界面也看不见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

藻头男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值