RabbitMQ

入门

什么是MQ

消息+队列,FIFO先入先出原则。跨进程的通信机制(逻辑解耦+物理解耦)

MQ优势

流量消峰:访问人数过多时,系统无法承载,使用消息队列来充当中间件来缓和访问。(对访问的人员进行排队进行消峰)防止宕机(稍微耗费时间)
应用解耦:各个服务之间交互时,如果有一个服务出现异常,那么整个系统都会出现故障。使用消息队列可以缓存出现故障时的用户数据。
异步处理:当服务调用是异步的,使用mq,a可以在消息队列中发消息传给b,可以得到具体执行时间。

MQ分类

ActiveMQ:单机吞吐量高,时效性毫秒级,主从架构高可用性 | 维护越来越少,高吞吐量场景越来越少。
Kafka:为大数据而生的消息中间件,高吞吐量,日志采集,分布式 | 社区更新较慢
RocketMQ:单机吞吐量高,阿里开源产品 | 支持的客户端语言不多
RabbitMQ:最主流的消息中间件,erlang语言的高并发特性,支持多种语言 | 学习成本较高

RabbitMQ

接收,存储,转发
生产者
交换机 队列(绑定关系)
消费者

核心部分

  • 简单模式
  • 工作模式
  • 发布订阅
  • 路由模式
  • 主题模式
  • 发布确认模式

高级部分

  • 死信队列
  • 延迟队列
  • 发布确认高级(发布确认,回退消息,备份交换机)
  • 幂等性
  • 优先级队列
  • 惰性队列

集群部分

  • 正确搭建mq集群
  • 为防止数据不丢失提供镜像队列
  • Haproxy+keepalive实现高可用负载均衡
  • 联邦交换机+联邦队列实现同步数据组建
  • 同步数据插件Shovl
posted @ 2022-07-08 15:04  一刹流云散  阅读(37)  评论(0编辑  收藏  举报