消息中间件
要理解消息中间件首先要理解两个概念,即什么是分布式系统,什么又是中间件
分布式系统的特点
- 组件分布在网络计算机上
- 组件之间通过消息来协调行动
中间件
中间件在 wiki 上描述为
提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑。
分布式消息中间件
wiki 中的定义为
Message-oriented middleware is software or hardware infrastructure supporting and receiving messages between distributed systems
消息中间件是支持在分布式系统中发送和接受消息的硬件或软件基础设施。
消息中间件本身也是一个分布式系统。
消息中间件解决的是分布式系统之间消息传递的问题。
消息中间件的应用场景
- 业务解耦
各模块之间只需要发布消息,无需知晓服务的存在 - 削峰填谷
当上游系统的吞吐能力高于下游系统时,消息中间件可以在峰值时堆积消息,在峰值过去后下游系统慢慢消费消息解决流量洪峰的问题 - 事件驱动
系统与系统之间通过消息传递的形式驱动业务,以流式的模型处理