消息中间件简介学习汇总

消息中间件就是一个队列,放进去取出来

业务和业务之间的联系,不做任何的逻辑

web中间件

nginx中间件

还有数据库中间件,访问数据库变得高效

应用场景

异步解耦

场景1 订单服务-调用积分服务,当积分服务挂了,积分服务不可用,当订单服务继续调用就会报错.

使用消息中间件,将订单信息传递到订单中心,订单中心会给积分服务进行调用积分服务

即使宕机数据也不会丢失,数据有做持久化

消息中间件简介学习汇总_第1张图片

 

削峰田谷

当某个时段有大量数据进来可能会导致宕机,可以用消息中间件限流(排队慢慢进来,防止挤爆数据库)

消息中间件简介学习汇总_第2张图片

 

数据分发

服务A调用BCD,当B下线,E上线需该代码

消息中间件简介学习汇总_第3张图片

 

使用消息中间件可以实现消息的分发(当B不要,则断开与消息中间件的连接)

消息中间件简介学习汇总_第4张图片

 

常见的消息中间件

ActiveMQ

ActiveMQ是Apache出品,比较老的一个开源的消息中间件,以前在中小企业应用广泛.

Kafka

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

RabbitMQ

RabbitMQ 是一个基于Erlang 语言开发的消息中间件,

RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

对数据的一致性,稳定性和可靠性要求比较高的场景

RocketMQ

RocketMQ 是阿里巴巴在 2012 年开源的分布式消息中间件,目前已经捐赠给 Apache 软件基金会,并于 2017 年 9 月 25 日成为 Apache 的顶级项目。作为经历过多次阿里巴巴双十一这种“超级工程”的洗礼并有稳定出色表现的国产中间件,以其高性能、低延时和高可靠等特性近年来已经也被越来越多的国内企业使用。

淘宝内部的交易系统使用了淘宝自主研发的 Notify 消息中间件,使用 MySQL 作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011 年初,Linkin开源了 Kafka 这个优秀的消息中间件,淘宝中间件团队在对 Kafka 做过充分 Review 之后, Kafka 无限消息堆积,高效的持久化速度吸引了我们,但是同时发现这个消息系统主要定位于日志传输,对于使用在淘宝交易、订单、充值等场景下还有诸多特性不满足,为此我们重新用 Java 语言编写了 RocketMQ ,定位于非日志的可靠消息传输(日志场景也OK),目前 RocketMQ 在阿里集团被广泛应用在订单,交易,充值,流计算,消息推送,日志流式处理, binlog 分发等场景。

消息中间件简介学习汇总_第5张图片

 

你可能感兴趣的:(java)