RabbitMQ的基本介绍

什么是MQ

本质是一个队列,只不过队列中存放的信息是message罢了,还是一种跨进程的通信机制,用于上下游传递信息。在互联网架构中,MQ是一种非常常见的上下游"逻辑解耦+物理解耦"的消息通信服务。使用了MQ之后,信息发送上有只需要依赖MQ,不用依赖其他服务。

为什么要使用MQ

  • 流量消峰
  • 应用解耦
  • 异步处理

MQ的分类

  • ActiveMQ
    • 优点:单机吞吐量万级,时效性ms级,可用性高,基于主从架构高可用性,消息可靠性较低的概率丢失数据
    • 缺点:维护较少,高吞吐量场景较少使用
  • Kafka
    • 大数据中使用率高,百万级TPS的吞吐量
    • 优点:吞吐量高、分布式、时效性高、不会丢失数据、使用广泛
    • 缺点:消息失败不支持重试
  • RocketMQ
    • 优点:单机吞吐量高、0丢失、支持10亿级别的消息堆积
    • 缺点:支持客户端语言不多
  • Rabbit
    • 当前最主流的消息中间件之一
    • 优点:支持高并发、性能好、吞吐量高、跨平台、支持多种语言、社区活跃高...
    • 缺点:商业版需要收费,学习成本高

MQ的选择

  • Kafka:大数据、大型公司、日志采集
  • RocketMQ:金融互联网、稳定性上值得信赖、高并发
  • RabbitMQ:时效性微秒级、社区活跃度比较高、数据量没那么大

RabbitMQ

概念

是一个消息中间件:接收、存储和转发信息数据

  • 生产者:生产数据发送信息的程序是生产者
  • 交换机:
  • 队列:
  • 消费者:

核心部分

  • 工作原理

  • Broker:接收和分发信息的应用,RabbitMQ Server就是Message Broker

  • Virtual host:

  • Connection:publisher/consumer和broker之间的TCP连接

  • Channel:

  • Exchange:

  • Queue:消息最终被送到这里consumer取走

  • Binding:

相关推荐
PingCAP4 小时前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
数据库·分布式·架构
库库的数据库笔记5 小时前
金融核心交易系统的数据库国产信创改造该如何做?
大数据·数据库·分布式·mysql·oracle·金融·数据库架构
爱吃火鸡面呀10 小时前
深入理解 Spark RDD:五大特性与实战解析
大数据·分布式·spark
Linux实战笔记11 小时前
记一次消息队列选型对比线上排查:Kafka/RabbitMQ/Pulsar 技术选型
kafka·rabbitmq·高并发·pulsar·消息队列选型
Norris Huang12 小时前
Kafka Connect 与 Flink CDC 写入 Iceberg:Upsert 的代价,以及 S3 Tables 的真正价值
分布式·flink·kafka
张彦峰ZYF12 小时前
一条消息的丢与重:Kafka 与 RabbitMQ 可靠投递的确认、位点、死信与幂等全链路
后端·kafka·消息队列·rabbitmq·isr·解耦与削峰·丢失与重复
我就是不信13 小时前
集群高并发环境下如何保证分布式唯一全局ID生成?
分布式
黄俊懿1 天前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构
大菠萝爱上小西瓜1 天前
基于 Spark + Iceberg 湖仓一体的 Netflix 流媒体用户行为全链路数仓与 ALS 智能推荐决策系统(含穿透下钻大屏)
大数据·分布式·spark
吴建旭 智宅焕1 天前
智能家居售后服务体系的架构设计:分布式售后风险的集中式兜底方案
分布式·智能家居