互联网化中间件平台概述

    中间件由来已久,从早期的商用中间件到现如今的开源中间件,本质上都是随着网络能力演变增强而演进的。分布式的能力从过去单点内共享内存的模型向网络分布式化节点协作交互上演变,随着互联网类应用普及,海量连接、数据处理和高并发的场景越来越多,企业的业务支撑系统越来越需要通过中间件体系平台化来构建应用分布式处理能力来应对挑战。

    中间件体系单从技术角度包罗万象,甚至连java这样的JVM平台都可以认为是为网络应用化提供的中间件化的能力。这里主要从应用系统中几个重要的分层位置的中间件体系来尝试总结一下,后续会分析这些中间件具体的实现思路,以及一些平台化的考虑。

    在谈应用架构的时候,现在的企业喜欢使用一套称为“互联网化”的架构思路来区别于现有的体系架构。其实互联网化架构也好,现有的体系架构也好,最终还是体现的企业的架构支撑的场景变化上面,这里暂时不考虑更泛化的来看到这个问题,姑且先使用“互联网化”架构这个词。 另外,这里概述先不深入理论体系,而是给我们现有在平台体系里面实践过的技术应用做一个初步总结。

    在互联网化架构下(网络环境交互协作),现阶段微服务架构被认为是最主流的架构模式,这类总结的中间件大多是站在微服务架构角度来看待的(中间件还在其他如大数据等领域作基础支撑):

1)分布式协调服务,分布式协调服务是一套基于分布式一致性算法封装的支持分布式环境下状态数据同步和一致性的核心组件。在该核心能力基础上演变出了zookeeper、etcd等平台,同时基于这些分布式协调服务组件平台基础上,封装出了分布式服务的注册、配置中心的平台,来实现服务化架构下的分布式服务自动注册和在线订阅的计算模型。

分布式协调服务是分布式系统的核心,其基于CAP模型思路演变出了不同的分布式场景下的方向对应的中间件,比如强调CP能力的zookeeper,比如强调可用性的Eureka等。后续会分析他们的差异性和应用场景。

2)分布式rpc,位于应用计算层,该层如果定位为微服务架构,那么通常会构建为分布式服务计算中间件,当然这代表一种架构风格的技术实现,在这个领域目前互联网企业常见开源有谷歌推出的gRPC、Apache推出的thrift、阿里巴巴推出的dubbo等,这些开源中间件通常结合了分布式协调服务来实现分布式服务自动注册和订阅管理功能。

3)分布式数据访问中间件,位于数据层,是典型的数据访问计算和存储分离的思路的抽象,该层主要为底层关系数据库增强分库分表、分布式路由等分布式能力的中间件。该领域中间件业界开源有基于阿里开源的Cobar而来的mycat、Apache推出的ShardingSphere等。

4)分布式缓存中间件,同样位于数据层,但是可以灵活的出现在服务化任意一个层次,为应用数据计算加速。典型的业界有基于redis、MongoDB等封装的统一缓存中间件服务。

5)消息中间件是在rpc基础上一种提供数据请求通信异步落地的集成中间件方式,该类中间件具有应用通信集成、数据堆积等特性,能够支持大规模并发请求数据的异地堆积处理,是很多互联网高并发场景下的主要支撑手段。该中间件在业界开源主要有Apache推出的activemq、kafka、阿里巴巴推出的rocketmq(也在Apache托管)以及rabitmq、和一些特定领域的消息中间件,比如nsq分布式实时消息中间件等。

还有其它各类抽象共性能力封装的中间件在应用系统不同场景中不断出现,这里暂时只是先总结下主流的交易系统中应用的几类中间件,为后面总结这些中间件在实际应用中的设计等方面考虑作个铺垫。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值