0


【图解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的基本概念做出了介绍,并配合架构图对其核心组件进行了总结。

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


请添加图片描述

标签: rabbitmq 分布式

本文转载自: https://blog.csdn.net/2302_79094329/article/details/132652072
版权归原作者 DaenCode 所有, 如有侵权,请联系我们删除。

“【图解RabbitMQ-3】消息队列RabbitMQ介绍及核心流程”的评论:

还没有评论