中间件技术及双十一实践·中间件总体介绍

标签: 产品和系列专题 中间件 | 发表时间:2013-12-08 08:40 | 作者:jm
出处:http://jm-blog.aliapp.com

本文发表在《程序员》2014年1月刊:11.11背后的技术 http://www.csdn.net/article/2013-12-23/2817882

中间件总体介绍

阿里巴巴中间件与稳定性平台团队,是一个给业务应用团队以提供低成本,高可用,可扩展的弹性互联网系统解决方案为己任的技术团队,前身是成立于7年之前的淘宝平台架构部,而后随着业务领域,尤其是针对性能和稳定性技术领域的成功探索与突破,目前已经发展为一个涵盖消息通信,数据处理,性能优化和稳定性等各类技术的互联网架构服务平台。他成功地支持了包括淘宝,天猫,阿里云,小微金融等众多兄弟bu的业务与技术需求。在2013年的双11狂欢节中,中间件与稳定性平台团队也再一次站在了前排,与其他团队一起,为了“让天下没有难做的生意”贡献了自己的一份力量。

中间件与稳定性平台团队,是国内为数不多的极具技术挑战性的团队之一,依托于全球规模最大的阿里巴巴电子商务平台所带来的巨大流量和海量数据,以及对于电子商务平台固有的稳定性要求,使得团队有机会去面对一个又一个技术难题,创造一个又一个技术奇迹。从整体来看,中间件与稳定性平台的技术体系可以分为软负载配置、分布式服务框架、消息中间件、数据访问层、应用服务器和稳定性平台等,如下图所示。

中间件整体技术体系

如果我们将整个网站看成是一个大工厂,每个业务逻辑单元(Business Unit)看成是工厂内完成单个工序的车间,那么中间件就是能够让所有车间发挥出最大生产效率的各类支持性部门。

软负载系统(Software Load Balancing),通过软件系统解决请求的均衡负载。相对于F5或者LVS这些负载设备,软负载系统有以下特点:无中心化,成本更低,效率更高,功能更强。在解决长连接的负载均衡场景上,软负载系统可以做到长连接中的每个请求包级别的负载均衡,最大程度的优化资源的使用。

Java的运行时容器(Java Container和Web Server),主要为用户提供了软件库版本隔离和依赖升级推送的功能,就像是这家工厂的厂房,每个车间都要配备自己最趁手的工具,不同车间的工具如果相互共享使用,很容易出现螺丝找不到螺母的时候,从而造成生产停滞,因此,每个车间都应该有他们自己所需要的专用工具,并且要保证工具永远维持在最趁手的状态,才能让我们的工厂发挥出最理想的效能。

远程方法调用(RPC),传统意义上也被称为SOA,主要为用户提供了远程调用和服务治理的功能,他们能够让应用方将原来的整套业务逻辑拆分到不同的机器中运行。就像是车间之间的传送带,能够将各个车间的生产结合到一起,促进了分工合作,从而提升了生产效率。

消息系统(MQ),主要为用户提供了发送通知的功能,让一些非核心流程可以并行执行。 他们就像一家工厂的电子工单,最终产品一般是由多条生产线一起协作生产出来的:产品的各个部件的生产是完全可以并行的。但最终用户则需要的是包装好的全部产品。这时候就需要工单系统,让整个企业内可以并行生产的部分能够协调一致的进行产品的生产,并最终能够以合适的数量进行成品组装。

分布式存储(Distributed Storage),则主要为用户提供了可无限扩展的数据存储服务。这就像这家工厂的仓库,能否按照实际的需要,做到仓库的自动化运维和管理,按需扩展和收缩,是仓库运维管理中最为重要的挑战。

分布式调用跟踪系统(Distributed Tracing)通过收集和分析在不同中间件上网络调用的日志埋点,可以得到同一次请求上的各个系统的调用链关系,有助于梳理应用的请求入口与服务的调用来源、依赖关系,同时,也对分析系统调用瓶颈、估算链路容量、快速定位异常有很大帮助。

持续稳定性平台(Continue Stable Platform)是一个平台化的产品,涉及依赖治理、容量规划、实时监控和降级管理等多个领域 ,致力为阿里巴巴的各个系统提供稳定的数据和工具支持。

在本文后面的章节中,我们将依次概要介绍这些中间件和稳定产品,并以双11大促作为契机,为大家介绍那些我们在双11中使用的技术手段以及优化案例,与大家一起重新经历那些激动又紧张的日日夜夜。

系列文章:

中间件技术及双十一实践之中间件总体介绍http://jm-blog.aliapp.com/?p=3359

中间件技术及双十一实践之软负载篇http://jm-blog.aliapp.com/?p=3450

中间件技术及双十一实践·服务框架篇http://jm-blog.aliapp.com/?p=3462

中间件技术及双十一实践·EagleEye篇http://jm-blog.aliapp.com/?p=3465

《中间件技术及双十一实践·消息中间件篇》http://jm-blog.aliapp.com/?p=3483

 

如果觉得内容还行,请分享给更多的人…

转发:中间件技术及双十一实践之中间件总体介绍

转发:中间件技术及双十一实践之软负载篇

转发:中间件技术及双十一实践·服务框架篇

转发:中间件技术及双十一实践·EagleEye篇

相关 [中间件 技术 双十一] 推荐:

中间件技术及双十一实践·中间件总体介绍

- - 阿里中间件团队博客
本文发表在《程序员》2014年1月刊:11.11背后的技术 http://www.csdn.net/article/2013-12-23/2817882. 阿里巴巴中间件与稳定性平台团队,是一个给业务应用团队以提供低成本,高可用,可扩展的弹性互联网系统解决方案为己任的技术团队,前身是成立于7年之前的淘宝平台架构部,而后随着业务领域,尤其是针对性能和稳定性技术领域的成功探索与突破,目前已经发展为一个涵盖消息通信,数据处理,性能优化和稳定性等各类技术的互联网架构服务平台.

中间件技术及双十一实践·消息中间件篇

- - 阿里中间件团队博客
消息中间件——分布式消息的广播员. 消息中间件是一种由消息传送机制或消息队列模式组成的最典型的中间件技术. 通过消息中间件,应用程序或组件之间可以进行可靠的异步通讯来降低系统之间的耦合度,从而提高整个系统的可扩展性和可用性. Notify是淘宝自主研发的一套消息服务引擎,是支撑双11最为核心的系统之一,在淘宝和支付宝的核心交易场景中都有大量使用.

中间件技术及双十一实践·数据篇

- - 阿里中间件团队博客
数据层——分布式数据存储的桥梁. 大型互联网架构中,数据存储会面临读写容量瓶颈问题,像淘宝双十一活动,核心数据存储集群读写日访问量可以达到100亿以上,在这种场景下,单机数据库方式必定面临极大挑战,类似的场景也在一些传统使用IOE的企业中成为一种制约业务发展的致命要素. 而在阿里集团内,TDDL体系就是解决此种场景的利器, 这个体系是基于廉价pc和开源mysql、以客户端依赖方式、分库分表为主要手段、集中化数据库配置等几个关键要素构建起来, 成为阿里集团接入mysql的标准,提供整个集团上千个应用的数据库访问.

中间件技术及双十一实践·稳定性平台篇

- - 阿里中间件团队博客
稳定性平台——系统稳定运行的保障者. 大多数互联网公司都会根据业务对自身系统做一些拆分,大变小,1变n,系统的复杂度也n倍上升. 当面对几十甚至几百个应用的时候,再熟悉系统的架构师也显得无能为力. 稳定性平台从2011年就开始了依赖治理方面的探索,目前实现了应用级别和接口级别的依赖自动化治理. 在2013的双11稳定性准备中,为共享交易链路的依赖验证和天猫破坏性测试都提供了支持,大幅度减小了依赖治理的成本和时间.

中间件技术及双十一实践·应用服务器篇

- - 阿里中间件团队博客
应用服务器——系统运行的托管员. 阿里巴巴集团有国内最大规模的Java系统,几万台的应用服务器规模也空前庞大,目前主要使用的应用服务器有Tomcat,JBoss和Jetty三种. 阿里巴巴自从2004年开始转向Java技术平台后,先后经历了从WebLogic到Jboss和Tomcat迁移. 到了2008年,随着更为轻量级的Tomcat和Jetty容器的迅速发展,越来越多的应用系统开始尝试使用Tomcat或Jetty作为底层应用服务器.

阿里双十一数据库技术

- - Hello Database
真的很抱歉,我的博客已经很久没有更新了,因为花了太多的时间在微博和微信上,当然最主要的原因还是工作实在太忙了,仅剩的那点业余时间都用来陪娃了. 从2012年开始,工作重心转移到了淘宝和天猫,我的技术方向也发生了改变,2012年和2013年,经历了两次双十一,在这个过程中学到了很多东西. 尤其是2013年的双十一,系统准备的非常充分,技术上有很多创新,团队也得到了成长.

女人们,这些技术男真的被“双十一”逼“疯”了!

- - 博客园_新闻
每到“双十一”都是女人购物狂欢日,你家女人是不是都守到电脑前、手机上抢到手抖. 可是你有没有想过,这里面支撑这么多人疯狂购物的技术系统码农们都是怎么过的. 前些日子遇到了淘宝的一个技术小二庄卓然(南天),听他嘚啵嘚啵他那些被“双十一”逼疯的事,很有感触起来. 他和他的技术小二团队,是马云主动求合照的怪咖;是在辣妹热舞面前,也要忙着秒单的“死技术男”;婚礼当晚不是洞房,是赶回杭州加班“双十一”;在“双十一”让老婆怀上了孩子,还抽烟、喝红牛⋯⋯;因为一个系统错误,差点被逼得跳下 23 楼.

消息中间件的技术选型心得-RabbitMQ、ActiveMQ和ZeroMQ

- - haohtml's blog
RabbitMQ、ActiveMQ和ZeroMQ都是极好的消息中间件,但是我们在项目中该选择哪个更适合呢. 下面我会对这三个消息中间件做一个比较,看了后你们就心中有数了. RabbitMQ是AMQP协议领先的一个实现,它实现了代理(Broker)架构,意味着消息在发送到客户端之前可以在中央节点上排队.

Java 技术栈中间件优雅停机方案设计与实现全景图

- - IT瘾-dev
本系列 Netty 源码解析文章基于   4.1.56.Final版本. 在上篇文章 我为 Netty 贡献源码 | 且看 Netty 如何应对 TCP 连接的正常关闭,异常关闭,半关闭场景中笔者为大家详细介绍了 Netty 在处理连接关闭时的完整过程,并详细介绍了 Netty 如何应对 TCP 连接在关闭时会遇到的各种场景.

mycat 数据库中间件

- - Oracle - 数据库 - ITeye博客
出处:http://blog.csdn.net/nxw_tsp/article/details/56277430. 实习的时候,在一个项目当中,项目经理要求把原先的MySQL数据连接基于mycat来进行改造. 当时就在想MyCat是什么东西. MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里.