什么是 RabbitMQ
今天,我们将开始一个全新的 RabbitMQ 教程系列。RabbitMQ 是一种分布式消息代理。对于那些不熟悉消息代理的人来说,它基本上是一种允许应用程序相互通信并交换消息的软件。
例如,一条消息可以指示用户在电商应用中将新产品添加到购物车中,或者用户从新设备登录到其帐户。
那么,你可能会问,为什么我需要在我的应用程序中使用消息代理?消息代理相对于简单的 API 系统来说,增加了一定的复杂性,但从长远来看,它可以带来许多好处。
RabbitMQ 的优势
消息代理的使用非常流行,因为它允许工程师创建松耦合的应用程序,并允许系统的新部分无缝添加而不影响现有系统。这在微服务架构中非常常见,因此开发人员必须了解这一主题。
包括 RabbitMQ 在内的大多数消息总线都是异步操作的,这意味着它们不遵循简单的请求 - 响应模式,我们不必等待回复。我们将在后面详细介绍这一点,但将这种方法与现代微服务架构结合使用,可以帮助我们实现出色的扩展性和可靠性。
在系列的后续部分,我们将深入探讨像 RabbitMQ 这样的消息代理在常见应用中的具体实现方式。
RabbitMQ 的流行
正如你从 RabbitMQ 网站 上看到的,RabbitMQ 是最广泛部署的开源消息代理。它非常受欢迎。包括 Reddit、Accenture 和 NASA 在内的跨国科技公司都在使用它,此外,它还被全球范围内的众多初创公司广泛采用。它的安装和启动非常迅速,非常适合原型设计,并且可以部署在许多流行的云平台上,如 AWS、Azure 和 GCP。
RabbitMQ 的网站是开始使用它的一个很好的地方。录制时的最新版本是 3.9.8,网站上还提供了关于如何参与社区、文档、支持和博客的详细信息。
RabbitMQ 的功能
说到功能,RabbitMQ 拥有大量功能,还可以通过一系列插件扩展,以支持各种不同的场景。它内置了一个管理 UI,在我们的课程中,我们将使用这个 UI 来理解 RabbitMQ 对我们的消息执行了什么操作。
RabbitMQ 非常轻量,核心 RabbitMQ 平台运行所需的 RAM 不到 40MB。在管理 UI 中,我们可以看到 RabbitMQ 正在执行的所有操作的概览。我们可以监控连接、通道、交换、队列,这些都是我们将在后续文章中解释的内容。
我们还可以看到一些关于磁盘读取、磁盘写入的统计数据,以及有关哪些端口和用户正在使用我们的 RabbitMQ 环境的信息。
我们将从在多个平台上安装 RabbitMQ 的教程开始,然后看一下如何快速上手使用它的基本操作。我们还将简要介绍 RabbitMQ 如何使用 AMQP 作为其默认消息传递协议。
RabbitMQ 的客户端
正如前面提到的,这个系列的核心将着重于如何利用 RabbitMQ 的功能来解决分布式计算环境中经常遇到的核心架构问题。这些技术使我们能够轻松扩展部署在本地或云端的应用程序,并确保这些应用程序具有高可用性。
这些架构模式是技术领域最需要的技能之一,深入理解这些模式在各个行业中都具有很高的价值,无论技术栈如何。RabbitMQ 在许多流行的语言中都有客户端库。在这个系列中,我们将主要使用 Python 和 C#,但我们主要关注的是概念,我们所涵盖的内容在其他语言中也同样适用,如 Java、PHP、Ruby、Go 等。
为了结束本系列教程,我们将介绍一些 RabbitMQ 的高级功能,包括将 RabbitMQ 设置为节点集群,以及使 RabbitMQ 解决方案具有高可用性并甚至分布在云中的多个数据中心的技术。
希望本教程为你提供了关于 RabbitMQ 是什么以及我们将在本课程中涵盖哪些内容的良好介绍和概述。在下一篇文章中,我们将开始在本地机器上安装 RabbitMQ。
请记住,应用程序的架构取决于他的短板,所以请查看我的其他教程,了解更多你可以用来提升开发水平的热门技能。