基础概念:
-
消息(Message):指应用间传送的数据,相似文本字符串、JSON、内嵌对象等
-
消息中间件(MQ):指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通讯来进行分布式系统的集成。经过提供消息传递和消息排队模型,能够在分布式环境下扩展进程间的通讯。
消息中间件做用:
消息中间件的主要应用于担任消息传递的中转站,相似生活中的邮递局,但消息中间件的功能特性更加丰富,比较熟悉的应用场景是应用间的解耦和高流量下的削峰,其主要做用以下:
-
解耦:消息中间件可以担任一个隐含的,基于数据的接口层的角色,在接口两端的系统遵照约束下,容许独立地扩展或修改两边的处理过程。
-
冗余:消息中间件能够把消息进行持久化直到消息已经被消费完成。有些状况下,利用这样特性,可以规避处理数据丢失的风险。
-
削峰:相似一些秒杀业务场景会出现访问量剧增的情况,可是这样的突发流量并不常见。若是以能处理这类峰值为标准而投入资源,无疑是巨大的浪费。使用消息中间件可以使关键组件支撑突发访问压力,不会由于突发的超负荷请求而彻底崩溃。
-
可恢复性:消息中间件可以下降进程间的耦合度,当一个处理消息的进程挂掉时,加入消息中间件的消息仍然能够在系统恢复后进行处理【 消息中间件能够把消息进行持久化直到消息已经被消费完成】
-
缓冲:在任何重要的系统中,都会存在须要不一样处理时间的元素。消息中间件经过一个缓冲层来帮助任务最高效率地执行,写入消息中间件的处理会尽量的快速,有助于控制和优化数据流经系统的速度。
-
异步通讯:对于不想也不须要当即处理的系统数据,消息中间件提供了异步处理机制,容许应用把一些消息放入消息中间件中,但并不当即处理它,例如系统日志处理。
-
扩展性:
-
顺序保证: