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 点击选择一个交换机 交换机绑定队列 通过交换机模拟发送消息 可以看到队列收到消息和具体消息 总结:只有交换机和队列绑定了才可以发送到队列,只要和当前发送消息的交换机绑定的队列都能收到

数据隔离

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

相关推荐
想拿高薪的韭菜几秒前
操作系统高频(六)linux内核
linux·操作系统
HHONGQI1237 分钟前
Linux 基础入门操作 前言 linux操作指令介绍
linux·运维·服务器
东方璃烟9 分钟前
Lisp语言的渗透测试
开发语言·后端·golang
阮瑭雅9 分钟前
Lisp语言的系统调用
开发语言·后端·golang
电星托马斯10 分钟前
Linux如何设置bash为默认shell
linux·运维·服务器·笔记·程序人生·bash·个人开发
bobz96544 分钟前
linux tap vs openvswitch internal port
后端
Asthenia04121 小时前
MySQL中IN和NOT IN会走索引吗?
后端
爱的叹息1 小时前
Spring Boot 集成 Redis中@Cacheable 和 @CachePut 的详细对比,涵盖功能、执行流程、适用场景、参数配置及代码示例
spring boot·redis·后端
矛取矛求1 小时前
VMware 安装 Ubuntu 全流程实战指南:从零搭建到深度优化
linux·运维·ubuntu
Asthenia04121 小时前
MySQL索引EXPLAIN执行计划type类型解析
后端