消息中间件,也可以叫做中央消息队列或者是消息队列(区别于本地消息队列,本地消息队列指的是 JVM 内实现的队列实现),这是一种独立的队列系统。
消息中间件经常用来解决内部服务之间的异步调用问题 。请求服务方把请求队列放到队列中即可返回,然后等待服务提供方去队列中获取请求并进行处理,之后通过回调等机制把结果返回给请求服务方。
异步调用只是消息中间件一个非常常见的应用场景。
此外,常用的消息队列应用场景还包括如下几个:
- 解耦 : 一个业务的非核心流程需要依赖其他系统,但结果并不重要,有通知即可。
- 广播 : 消息队列最基本的功能,生产者只负责生产消息,订阅者接收消息。
- 最终一致性 : 指的是两个系统的状态保持一致,可以有一定的延迟,只要最终达到一致性即可,经常用在解决分布式事务上。