• 【图解RabbitMQ-3】消息队列RabbitMQ介绍及核心流程


    🧑‍💻作者名称:DaenCode
    🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······
    😎人生感悟:尝尽人生百味,方知世间冷暖。
    📖所属专栏:图解RabbitMQ


    在这里插入图片描述


    专栏推荐

    • 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。链接>>>>>>>>>《Redis从头学》
    • SpringBoot实战相关专栏,包含SpringBoot过滤器、拦截器、AOP实现日志、整合Freemaker、整合Redis等等实战相关内容,多篇文章登入全站热榜、领域热榜、被技术社区收录。链接>>>>>>《SpringBoot实战》

    🌟前言

    在上一节中学习了JMS消息服务与AMQP协议。了解了这两大消息传递技术,这一节就学习基于AMQP协议实现的RabbitMQ消息中间件是什么?RabbitMQ的架构图是怎样的?以及RabbitMQ中的核心组件。


    🌟RabbitMQ是什么?

    以下解释来源于百度百科:

    RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

    个人理解:

    基于AMQP协议实现的消息中间件,采用Erlang语言编写。

    架构图:
    在这里插入图片描述


    🌟特点

    1. 跨平台、多语言支持。基于AMQP协议实现。
    2. 支持分布式
    3. 可以与SpringAMQP进行整合
    4. 易于管理。提供了web管理页面用来监控和管理消息队列。
    5. 消息可靠性。RabbitMQ内部有消息可靠性投递机制,避免消息中途的丢失。

    🌟核心组件

    对于核心组件的位置,可以参照架构图。
    在这里插入图片描述

    • Broker:相当于一个MQ节点。
    • Producer:生产者。创建消息并发送到Broker中。
    • Consumer:消费者。监听Queue中的消息并消费。
    • Message:消息。数据对象,有消息头和消息体。
    • Queue:消息的载体。负责存储消息。
    • Channel:信道。支持多路复用,建立在生产者与broker、broker与消费者之间的虚拟连接。
    • Connection:一个连接上可以有多个Channel。
    • Exchange:交换机。生产者将消息发送给交换机,交换机负责使用binding_key绑定交换机与队列。
    • RoutingKey:路由键。消息的路由规则。
    • Binding:通过routingkey与bingding_key的规则,绑定交换机与队列。
    • Virtual Host:虚拟主机。虚拟的电脑,用来分离不同的业务逻辑模块或者环境。

    🌟核心流程

    1. Producer创建消息并发送到Broker。
      • Producer与Broker建立连接Connection。
      • 在Connection中创建信道Channel。
      • Producer声明一个交换机Exchange,用于接受消息Message并将它们路由到正确的Queue。
      • Producer选择一个RoutingKey,用于指定Exchange与哪个Queue进行绑定。
      • Producer发送消息到Exchange。
      • 关闭Channel。
      • 关闭Connection。
    2. Broker中的Exchange接收到消息后,根据RoutingKey规则路由到正确的Queue。
    3. Exchange与Queue通过Bingding绑定。
    4. Queue按照先进先出存储消息和处理消息。
    5. 消费者从队列中消费消息Message。
      • Consumer与Broker建立连接Connection。
      • 在Connection创建信道Channel。
      • Consumer通过ACK机制确认并消费消息。
      • Queue中删除被消费的消息。
      • 关闭Channel。
      • 关闭Connection。

    🌟写在最后

    有关于消息队列RabbitMQ基本介绍到此就结束了。在本文中对RabbitMQ的基本概念做出了介绍,并配合架构图对其核心组件进行了总结。

    非常感谢大家的阅读,对于学习过程中遇到的问题,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。


    请添加图片描述

  • 相关阅读:
    扫雷小游戏 2.0版本
    Ubuntu 上使用nginx部署vue项目
    Day698.Tomcat的日志框架及实战 -深入拆解 Tomcat & Jetty
    Spring Security漏洞防护—HttpFirewall和 HTTPS
    RocketMQ(一)
    mdio bcm5482访问
    uniapp实现可拖动悬浮按钮(最新版2024-7月)
    Docker部署ZooKeeper
    大数据现象是怎么形成的?
    [附源码]java毕业设计家居装修网站
  • 原文地址:https://blog.csdn.net/2302_79094329/article/details/132652072