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