学习RabbitMQ(一)

本文介绍了MQ的基本概念,包括流量消峰、应用解耦和异步处理,并探讨了MQ的选择,如Kafka、RocketMQ和RabbitMQ。重点讲述了RabbitMQ的四大核心概念——生产者、交换机、队列和消费者,以及其在消息传递中的作用。同时,文章提到了RabbitMQ的常用命令,帮助读者更好地理解和操作。
摘要由CSDN通过智能技术生成

1、MQ的相关概念

 

1.1、什么是MQ

        MQ(message queue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游”逻辑解耦+物理解耦“的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。

1.2、为什么要用MQ

1、流量消峰

        例如,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限制超过一万次后不允许用户下单。使用消息队列做缓冲,我们可以取消这个限制,把疫苗内下的订单分散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单的体验要好。

2、应用解耦

        以电商应用为例,应用中有订单系统、库存系统、物流系统、支付系统。用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统除了故障,都会造成下单操作异常。当转变成基于消息队列的方式后,系统间调用的问题会减少很多,比如物流系统因为发生故障,需要几分钟来修复。在这几分钟的时间里,物流系统要处理的内存被缓存在消息队列中,用户的下单操作可以正常完成。当物流系统恢复后,继续处理订单信息即可,下单用户感受不到物流系统的故障,提升系统的可用性。

 3、异步处理

        有些服务间调用时异步的,例如A调用B,B需要花费很长时间执行,但是A需要知道B什么时候可以执行完,以前一般有两种方式,A过一段时间去调用B的查询ap

RabbitMQ 是一个功能强大的开源消息中间件,用于在应用程序之间进行可靠的消息传递。它实现了 AMQP(高级消息队列协议)标准,并支持多种编程语言。如果你想深入学习 RabbitMQ,以下是一些步骤和资源可以帮助你: 1. 了解消息队列和 RabbitMQ 的基本概念:开始之前,确保你对消息队列的概念有一定的了解,比如发布/订阅模式、生产者/消费者模式等。然后,学习 RabbitMQ 的基本概念,如交换机、队列、绑定等。 2. 安装和配置 RabbitMQ:首先,你需要安装 RabbitMQ。它支持多种操作系统,你可以从官方网站下载并按照说明进行安装。安装完成后,你可以通过 Web 界面或命令行进行配置。 3. 使用 RabbitMQ 的官方教程:RabbitMQ 官方网站提供了一系列教程,从入门到高级都有涵盖。这些教程以不同的编程语言(如 Python、Java、Ruby 等)为例,向你展示如何使用 RabbitMQ 进行消息传递。 4. 开发示例应用程序:尝试编写一些简单的示例应用程序来使用 RabbitMQ。这将帮助你更好地理解 RabbitMQ 的工作原理和 API 的用法。可以从简单的生产者/消费者示例开始,然后逐渐扩展到更复杂的场景。 5. 深入了解 RabbitMQ 的高级特性:一旦你对 RabbitMQ 的基本概念和用法熟悉了,你可以进一步学习 RabbitMQ 的高级功能,如消息确认、消息持久化、消息路由、事务等。这些特性将帮助你构建更强大和可靠的应用程序。 除了官方文档,还有一些优秀的第三方资源可以帮助你深入学习 RabbitMQ,比如书籍、博客文章、视频教程等。不断实践和探索是学习 RabbitMQ 的关键,希望你能享受这个过程!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值