为了简单高效的业务处理;以沟通工具为例,如果回到5千年前,人与人之间的沟通必须是面对面的。人与人耦合太严重了;见不到面,就说不上话了~ 后来有了中间件,传话人,传信人,飞鸽,电报,电话,EMAIL,MSN,QQ,微信;
为了方便系统的传输,同样中间件经历了,TIB,IBMMQ,MSMQ,JMS,AMQP/RABBITMQ/ACTIVEMQ,Kafka,ROCKETMQ;
通信的发展,让人与人之间可以时实的远程通信(做为一个发送/生产消息的人,不需要关心,不需要知道对方何时,何地)同样(做为一个收/消费消息的人,不需要关心,对方何时发送)
中间件因为异步通信,系统解耦的通信模式,让沟通变得简单(此处是QQ以前的广告语)
同样通信的发展,试想如果10个人同时围在你周围跟你沟通,做为一个听众,你一定想静一静! 系统同样有这样的问题,因为大批量的请求,无法承受的并发量,导至系统瘫痪的列子笔笔皆是?
有了通信的中间件,所有的消息都在微信上排着队;一个个听,一个个解决! 系统批量请求,使用中间件同样,所有的请求都通过了消息队列,将并发数据,转换成 队列串行化!防止系统峰值过高导致的崩溃!
如上的过称,我们称为 流量削峰
所以为什么要用消息中间件?
因为他的 异步通信,系统解耦,流量削峰! 让我们代码变得更简单,业务处理变得更高效!