Rabbit 安装和控制台的使用详解

简介

RabbitMQ 是一个用 Erlang 编写的高级消息队列协议和开源消息代理软件(亦称消息中间件)。RabbitMQ 支持多种消息队列协议,包括 AMQP、MQTT、STOMP 等。 RabbitMQ 的主要特点包括:

  • 可靠性:RabbitMQ 提供了高可靠性的消息队列服务,可以保证消息的可靠传递。
  • 可伸缩性:RabbitMQ 可以轻松地扩展到数千个节点,以满足高并发和大流量的需求。
  • 高性能:RabbitMQ 采用了高效的内存数据结构和异步 I/O 模型,以实现高性能的消息处理。
  • 灵活的路由:RabbitMQ 支持灵活的路由机制,可以根据消息的属性和内容进行路由。
  • 多语言支持:RabbitMQ 提供了多种编程语言的客户端库,包括 Java、Python、Ruby、C#等。

RabbitMQ 被广泛应用于各种场景,包括分布式系统、微服务架构、物联网、实时数据处理等。

同步调用

以支付为例

同步优势:时效性强,等待到结果后才返回

同步问题:拓展性差、性能下降、级联失败问题

异步调用

异步调用方式其实就是基于消息通知的方式,一般包含三个角色:

  • 消息发送者:投递消息的人,就是原来的调用方
  • 消息代理:管理、暂存、转发消息,你可以把它理解成微信服务器
  • 消息接收者:接收和处理消息的人,就是原来的服务提供方

支付服务不在同步调用业务关联度低的服务,而是发送消息通知到 Broker

异步优势:解除耦合,扩展性强、无需等待,性能好、故障隔离、缓存消息,流量削峰填谷

异步问题:不能立即得到调用结果,时效性差、不确定下游业务执行是否成功、业务安全依赖Broker可靠性

MQ 技术选型

MQ(MessageQueue),中文是消息队列,字面来看就是存放消息的队列。也就是异步调用中的 Broker

安装

RabbitMQ 是基于 Erlang 语言开发的开源消息通信中间件,官网地址

shell 复制代码
docker pull rabbitmq:3.8-management

docker run \
 -e RABBITMQ_DEFAULT_USER=dong \
 -e RABBITMQ_DEFAULT_PASS=123456 \
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 -d \
 rabbitmq:3.8-management

可以看到在安装命令中有两个映射的端口:

  • 15672:RabbitMQ提供的管理控制台的端口
  • 5672:RabbitMQ的消息发送处理接口

安装完成后,我们访问 http://你的服务器IP:15672即可看到管理控制台。首次访问需要登录,默认的用户名和密码在配置文件中已经指定了。登录后即可看到管理控制台总览页面 其中包含几个概念

  • publisher:生产者,也就是发送消息的一方
  • consumer:消费者,也就是消费消息的一方
  • queue:队列,存储消息。生产者投递的消息会暂存在消息队列中,等待消费者处理
  • exchange:交换机,负责消息路由。生产者发送的消息由交换机决定投递到哪个队列
  • virtual host:虚拟主机,起到数据隔离的作用。每个虚拟主机相互独立,有各自的exchange、queue

RabbitMQ 控制台使用

添加二个队列 hello.queue1、hello.queue2 点击选择一个交换机 交换机绑定队列 通过交换机模拟发送消息 可以看到队列收到消息和具体消息 总结:只有交换机和队列绑定了才可以发送到队列,只要和当前发送消息的交换机绑定的队列都能收到

数据隔离

我们可以在右上角看到可以选择不同的虚拟主机 新建一个用户 新建一个虚拟机

相关推荐
嵩山小老虎8 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模9 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a41324479 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
一点程序10 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
一只自律的鸡11 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
17(无规则自律)11 小时前
【CSAPP 读书笔记】第二章:信息的表示和处理
linux·嵌入式硬件·考研·高考
!chen11 小时前
linux服务器静默安装Oracle26ai
linux·运维·服务器
REDcker11 小时前
Linux 文件描述符与 Socket 选项操作详解
linux·运维·网络
蒹葭玉树11 小时前
【C++上岸】C++常见面试题目--操作系统篇(第二十八期)
linux·c++·面试
2501_9277730712 小时前
imx6驱动
linux·运维·服务器