一、背景
在本篇学习中,我们要介绍消息中间件,它可以帮助我们将核心和辅助流程分开,让它们互相独立。同时,还要关注在使用消息中间件时需要注意的地方。并且将这种思想应用到其他实际场景中。
二、术语
2.1、消息中间件
消息中间件是一种在分布式系统中用于处理消息传递的软件组件或服务。它充当了消息的传输媒介,使得不同的应用程序、服务或组件能够通过发送和接收消息来进行通信。
在一个典型的分布式系统中,不同的应用程序可能需要相互通信和共享数据。传统的点对点通信模式可能存在一些限制,比如应用程序之间直接依赖、耦合度高、可伸缩性差等。而消息中间件通过引入一个独立的消息传递层,解耦了应用程序之间的直接依赖关系,提供了一种松散耦合的通信方式。
消息中间件通常采用发布-订阅(publish-subscribe)模式或队列(queue)模式来传递消息。在发布-订阅模式中,消息发布者将消息发布到特定的主题(topic),而消息订阅者则订阅感兴趣的主题,从而接收到相应的消息。在队列模式中,消息发送者将消息发送到队列,而消息接收者则从队列中接收和处理消息。
2.2、数据积压场景
高消息生产速率:当消息生产者的产生速率超过了消费者的处理速率时,消息中间件可能会出现数据积压。
消费者处理能力不足:如果消费者的处理能力无法跟上消息的到达速度,例如消费者的处理逻辑复杂、资源不足或者消费者节点故障,消息中间件可能会出现数据积压。
消费者负载不均衡:当消息中间