RabbitMQ-最常用的消息队列MQ安装详解!!
RabbitMQ-简介
RabbitMQ 是采用 Erlang 语言实现的高级消息队列协议(AMQP)的消息中间件。它最初起源于金融系统,用于在分布式系统中存储和转发消息。
在 RabbitMQ 中,消息传递的过程可以想象成厨师做好饭菜放到服务台,服务台会暂存并最终将饭菜通过服务员送到客人的餐桌。RabbitMQ 就好比由服务台和服务员组成的一个系统。
文档内安装包下载不到或找不到者可找Me拿!!!!!
一、使用RabbitMQ消息队列的优点
- 异步:提升系统的响应速度,吞吐量。
- 解耦:服务之间进行解耦,才可以减少服务之间的影响,提高系统整体的稳定性以及可扩展性。另外解耦后可以实现数据分发。生产者发送一个消息后,可以由一个或者多个消费者进行消费,并且消费者的增加或者减少对生产者没有影响。
- 削峰:以稳定的系统资源应对突发的流量冲击。
二、使用RabbitMQ消息队列的缺点
- 系统可用性降低:系统引入的外部依赖增多,稳定性就会变差。一旦MQ宕机,就会对业务产生影响。(可考虑通过高可用模式解决)
- 系统的复杂度提高:引入MQ后系统的复杂度会大大提高。以前服务之间可以进行同步的服务调用,引入MQ后,会变成异步调用,数据链路会变得更复杂。并且还会带来一系列的问题。(如何保证消息不会丢失?不会被重复调用?怎么保证消息的顺序性?)
- 消息一致性问题:A系统处理完业务,通过MQ发送消息给B、C系统进行后续的业务处理。如果B系统成功,C系统失败,这就需要考虑消息的一致性。
三、Linux操作系统环境规划
ip地址hostname操作系统版本服务器类别10.0.0.*appcentos 7(或者麒麟V10)虚拟机VMware
四、安装 erlang
- RabbitMQ是用Erlang语言编写的,所以在安装RabbitMQ之前需要安装Erlang。
- 在构建RabbitMQ环境的过程中,RabbitMQ和Erlang的版本要对应关系,官网上可以查看RabbitMQ和Erlang的版本问题:Erlang Version Requirements!可点击跳转!
- Erlang官网地址:Erlang official website!可点击跳转! 下载安装包。
[root@app RabbitMQ]# ll
总用量 39584
-rw-r--r-- 1 root root 218461847月 1810:50 erlang-26.2.5.2-1.el8.x86_64.rpm
- 执行rpm命令安装 Erlang
[root@app RabbitMQ]# rpm -Uvh erlang-26.2.5.2-1.el8.x86_64.rpm
警告:erlang-26.2.5.2-1.el8.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 6026dfca: NOKEY
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:erlang-26.2.5.2-1.el8 ################################# [100%]
- 安装完成后检查版本确认
[root@app RabbitMQ]# erl -version
Erlang (SMP,ASYNC_THREADS)(BEAM) emulator version 14.2.5.2
五、安装 RabbitMQ详解
5.1 安装socat
RabbitMQ需要的依赖:socat和logrotate,logrotate操作系统中已经存在了,只需要安装socat就可以。
[root@app RabbitMQ]# yum install -y socat
依赖关系解决。
===========================================================================================================================================================================
Package Architecture Version Repository Size
===========================================================================================================================================================================
安装:
socat x86_64 1.7.3.2-8.ky10 ks10-adv-os 155 k
事务概要
===========================================================================================================================================================================
安装 1 软件包
总下载:155 k
安装大小:560 k
下载软件包:
socat-1.7.3.2-8.ky10.x86_64.rpm 435 kB/s |155 kB 00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 427 kB/s |155 kB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 :1/1
安装 : socat-1.7.3.2-8.ky10.x86_64 1/1
运行脚本: socat-1.7.3.2-8.ky10.x86_64 1/1
验证 : socat-1.7.3.2-8.ky10.x86_64 1/1
已安装:
socat-1.7.3.2-8.ky10.x86_64
完毕!
5.2 RabbitMQ 安装
RabbitMQ 官网地址:RabbitMQ official website! 可点击跳转!
RabbitMQ 安装包下载地址:Installtion package Download link!可点击跳转!
- 下载好安装包后执行rpm命令安装
[root@app RabbitMQ]# rpm -Uvh rabbitmq-server-3.13.4-1.el8.noarch.rpm
警告:rabbitmq-server-3.13.4-1.el8.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID 6026dfca: NOKEY
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:rabbitmq-server-3.13.4-1.el8 ################################# [100%]
/usr/lib/tmpfiles.d/pesign.conf:1: Line references path below legacy directory /var/run/, updating /var/run/pesign → /run/pesign; please update the tmpfiles.d/ drop-in file accordingly.
/usr/lib/tmpfiles.d/rabbitmq-server.conf:1: Line references path below legacy directory /var/run/, updating /var/run/rabbitmq → /run/rabbitmq; please update the tmpfiles.d/ drop-in file accordingly.
5.3 启动 RabbitMQ
[root@app RabbitMQ]# systemctl start rabbitmq-server
5.4 启动完成后检查
[root@app RabbitMQ]# systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2024-07-18 10:56:02 CST; 11s ago
Main PID: 35463(beam.smp)
Tasks: 28
Memory: 85.8M
CGroup: /system.slice/rabbitmq-server.service
├─35463 /usr/lib64/erlang/erts-14.2.5.2/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs512-MHlmbcs512-MMmcs30-pc unicode -P1048576-t5000000 ->
├─35476 erl_child_setup 32768
├─35495 sh-s disksup
5.5 常用命令
# 启动服务> systemctl start rabbitmq-server
# 查看服务状态> systemctl status rabbitmq-server
# 停止服务> systemctl stop rabbitmq-server
# 开机启动服务> systemctl enable rabbitmq-server
六、图形化管理界面及授权操作
6.1 安装图形化管理界面
[root@app RabbitMQ]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@app:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@app...
The following plugins have been enabled:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
started 3 plugins.
6.2 访问地址(ip+端口15672)
6.3 创建授权账户密码
- 新增用户命令
[root@app RabbitMQ]# rabbitmqctl add_user admin admin
- 设置用户角色
用户级别:
1、administrator 可以登录控制台、查看所有信息、可以对rabbitmq进行管理
2、monitoring 监控者 登录控制台,查看所有信息
3、policymaker 策略制定者 登录控制台,指定策略
4、managment 普通管理员 登录控制台
-------------------------------------
[root@app RabbitMQ]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator]...
- 为用户设置权限命令
[root@app RabbitMQ]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
6.4 登录界面访问
七、RabbitMQ 界面简介
7.1 Overview
Overview:主要展示的是MQ的概要信息 , 如消息的数量,Connection,Channel,Exchange,Queue,Consumer的数量.
7.2 Connections
Connections:查看生产者或消费者与RabbitMQ建立连接后的信息.
7.3 Channels
Channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道.
7.4 Exchanges
Exchanges:交换机,用来实现消息的路由,主要展示的是当前虚拟主机下的交换器,也可以在此添加一个新的交换器, 并且配置对应的交换器的规则属性.
7.5 Queues and Streams
Queues and Streams:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列.
7.5 Admin
Admin:系统管理,展示的是用户管理的信息, 包含用户列表的展示,添加用户,添加虚拟主机等信息.
版权归原作者 Lhz笔记 所有, 如有侵权,请联系我们删除。