一 使用场景:
1.异构系统的交互,比如一个系统由两个服务组成,一个java编写的服务,一个c++编写的服务,两个服务的交互不需要强一致,及不需要方法调用的确定(如果是强一致采用RPC或者HTTP接口或webservice比较合适),这样就可以采用面向中间件编程交互,便于解耦。
2.对于可能存在的消息的产生和消费速度不一致的情况下,比如收集的数据会在某些时刻产生井喷式的峰值,而收据处理模块并不具备处理峰值数据的能力,这样可以采用中间件先把峰值数据缓存到中间件(可以缓存在内存或者硬盘),让数据处理模块按处理能力从中间件拿消息处理。