RabbitMQ简介及其核心概念

  • RabbitMQ

    • 是一个开源的AMQP(Advanced Message Queuing Protocol高级消息队列协议)实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.Net、Java、C,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不错,与Spring AMQP完美整合、API丰富易用
  • 核心概念

    • Broker

      • RabbitMQ的服务端程序,可以认为一个mq节点就是一个broker
    • Producer生产者

      • 创建消息Message,然后发布到RabbitMQ中
    • Consumer消费者

      • 消费队列里面的消息
    • Message消息

      • 生产消费的内容,有消息头和消息体,也包括多个属性配置,比如routingKey路由键
    • Queue队列

      • 是RabbitMQ的内部对象,用于存储信息,消息都只能存储在队列中
    • Channel信道

      • 一条支持多路复用的通道,独立的双向数据流通道,可以发布、订阅、接收消息
      • 信道是建立在真实的TCP连接内的虚拟连接,复用TCP连接的通道
    • Connection连接

      • 是RabbitMQ的socket链接,它封装了socket协议相关部分逻辑,一个连接上可以有多个channel进行通信
    • Exchange交换器

      • 生产者将消息发送到Exchange,交换器将消息路由到一个或者多个队列中,里面有多个类型,后续再一一介绍,队列和交换机是多对多的关系
    • RoutingKey路由键

      • 生产者将消息发给交换器的时候,一般会指定一个RoutingKey,用来指定这个消息的路由规则
      • 最大长度255字节
    • Binding绑定

      • 通过绑定将交换器与队列关联起来,在绑定的时候一般会指定一个绑定键(BindingKey),这样RabbitMQ就知道如何正确的将消息路由到队列了
      • 生产者将消息发送给交换器时,需要一个RoutingKey,当BindingKey和RoutingKey相匹配时,消息会被路由到对应的队列中
    • VirtualHost虚拟主机

      • 用于不同业务模块的逻辑隔离,一个VirtualHost里面可以有若干个Exchange和Queue,同一个VirtualHost里面不能有相同名称的Exchange或Queue
      • 默认是/,可以创建/dev、/test
相关推荐
invicinble15 小时前
关于Rabbitmq在逻辑主体层面的配置
spring boot·rabbitmq·java-rabbitmq
I_Jln.15 小时前
RabbitMQ+SpringAMQP 从入门到精通
分布式·rabbitmq
编程彩机1 天前
互联网大厂Java面试:从Spring Boot到消息队列的技术场景解析
java·spring boot·分布式·面试·kafka·消息队列·rabbitmq
洛阳纸贵1 天前
JAVA高级工程师--RabbitMQ消费者消息限流、超时、死信队列以及若依集成升级
java·rabbitmq·java-rabbitmq
福赖2 天前
《微服务即使通讯中RabbitMQ的作用》
c++·微服务·架构·rabbitmq
h7ml3 天前
基于 RabbitMQ 构建异步化淘客订单处理流水线:解耦、削峰与失败重试
分布式·rabbitmq·ruby
小北方城市网4 天前
Spring Boot Actuator+Prometheus+Grafana 生产级监控体系搭建
java·spring boot·python·rabbitmq·java-rabbitmq·grafana·prometheus
不想写bug呀4 天前
RabbitMQ集群和仲裁队列
rabbitmq·集群·仲裁队列
信创天地4 天前
国产化数据库深度运维:性能调优与故障排查实战指南
运维·数据库·安全·elk·自动化·rabbitmq
jiayong234 天前
MQ基础概念面试题
java·kafka·rabbitmq·rocketmq