Ezio's Blog
Posts Categories Tags Music Mood About
Ezio's Blog· Light
☰ Menu
Posts Categories Tags Music Mood About
Expand all Back to top Go to bottom

RabbitMQ

Author: Ezio Date: April 12, 2021  14:03:57 Category: RabbitMQ

介绍

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

同步调用

优点:

  • 时效性强,立即得到结果

缺点:

  • 耦合度高
  • 如果调用链过长,性能和吞吐能力下降
  • 在调用链等待过程中,请求占用的资源不能释放,高并发下浪费资源
  • 有级联失败问题,提供方出现问题,会导致调用方都跟着出问题
异步调用

优点:

  • 通过发布事件的方式,耦合度更低
  • 吞吐量提升,调用链变短,不用等待其他服务执行完成,耗时更短
  • 故障隔离,因为不存在调用,其他服务挂了也不会影响
  • 流量削峰,由broker承担压力

缺点:

  • 增加服务架构复杂度,不好追踪管理
  • 依赖Broker的可靠性、安全性、吞吐能力

MQ对比:

RabbitMQ中的几个概念:

  • channel:操作mq的工具
  • exchange:路由消息到队列中
  • queue:缓存消息
  • virtual host:虚拟主机,是对queue、exchange等资源的逻辑分组。

RabbitMQ的安装

1.通过docker拉取镜像
1
docker pull rabbitmq:3-management
2.运行容器
1
2
3
4
5
6
7
8
9
docker run \
-e RABBITMQ_DEFAULT_USER=ezio \ # 用户名
-e RABBITMQ_DEFAULT_PASS=123456 \ # 密码
--name mq \
--hostname mq1 \ # 主机名,集群部署会用到
-p 15672:15672 \ # rabbitmq管理平台端口
-p 5672:5672 \ # rabbitmq消息通信端口
-d \
rabbitmq:3-management

常见消息模型

**publisher:**消息发布者,将消息发送到交换机或队列

**queue:**消息队列,负责接收和缓存消息

**consumer:**消息消费者,订阅队列,处理队列中的消息

  • 基本模式:一对一

  • 工作模式(竞争模式):一对多

  • 发布/订阅模式(广播Fanout):

  • 路由模式:

  • 主题模式:

Author: Ezio

Permalink: https://ezioy.cn/2021/04/12/RabbitMQ/

License: Copyright (c) 2019 CC-BY-NC-4.0 LICENSE

Slogan: Nothing is true,Everything is permitted

Tag(s): # RabbitMQ
back · home
Java8-LocalDateTime Quartz 定时任务
Ezio © 2019 - 2026 | Powered by Hexo & Chic | 访客数量:   浏览次数: | 渝公网安备50011302222043 | 渝ICP备2023013933号-1