我的出版书籍之《深入RabbitMQ》

这是我和阿里技术专家汪佳南合作的一本关于RabbitMQ的译著。

当下互联网行业中的各种分布式和服务化系统的开发本质上就是解决一个问题,即系统如何进行拆分和集成。服务拆分需要利用到面向领域思想,而服务集成则可以采用RPC、REST、消息通信等多种技术体系。从软件设计角度讲,无论是RPC还是REST都存在一定的耦合度问题。耦合度包括技术耦合、空间耦合和时间耦合等不同的表现形式,而消息通信机制能够降低这几种耦合度。

消息通信机制在消息发送方和消息接收方之间添加了存储转发(Store and Forward)功能。通过存储转发功能,消息发送方和消息接收方之间并不需要相互认识,也不需要同时在线,更加不需要采用同样的实现技术。紧耦合的单阶段远程方法调用就转变成松耦合的两阶段过程,技术、空间和时间上的约束通过中间层得到显著缓解。

然后消息通信机制并没有想象的那么简单。我们需要在消息的生产者和消费者之间建立有效的通信链路并确定双方的通信协议,同时也需要约定消息的格式和内容。发送消息的过程比较单一,而消费消息则需要考虑消费者限流,通常存在主动拉取和被动消费这两种实现模式。对于已发送的消息而言,还存在一个设计上的维度,即一个消息如何被一个或多个消费者同时消费。这些构成了消息通信机制所应该具备的核心组件。

围绕消息通信机制的这些核心组件,业界存在一批关于消息通信的设计规范。而基于这些规范,不同厂商也提供了多种消息通信系统实行方案。本书所介绍的是基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)规范的RabbitMQ,在内容上详细阐述了RabbitMQ的以下几个主题:

  1. AMQP规范以及消息定义
  2. 消息发送的过程以及可靠消息投递机制
  3. 消息消费的过程以及消费者性能优化方法
  4. 交换器组件以及消息路由机制
  5. RabbitMQ分布式集群构建
  6. RabbitMQ在系统集成上的具体应用

目前,RabbitMQ在各大互联网公司中应用十分广泛。通过RabbitMQ所提供的丰富的交互API、友好的管理界面以及与生俱来的分布式特性,我们可以轻松构建一个强大的消息通信系统。然后消息通信系统的构建一方面降低了耦合性,另一方面也不可避免的引入了复杂性。如果使用不当,反而会引发各种问题。本书深入分析消息通信的各个方面,不仅介绍了RabbitMQ的各项基本功能,更为重要的是提供了一系列面向实战的最佳实践,可以作为广大技术人员的开发指南。

更多内容可以关注我的公众号:程序员向架构师转型。

发布了112 篇原创文章 · 获赞 12 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/lantian08251/article/details/104788938