InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

曾宪杰谈Java在淘宝的应用

作者 丁雪丰 发布于 2011年7月14日

领域
企业架构,
运维 & 基础架构,
架构 & 设计,
语言 & 开发
主题
JBoss ,
JDBC ,
RedHat ,
应用服务器 ,
Java ,
Web服务 ,
MySQL ,
Java EE ,
语言 ,
关系型数据库 ,
企业架构 ,
SOA ,
开放源代码 ,
架构 ,
编程 ,
淘宝 ,
互联网 ,
阿里巴巴 ,
架构 ,
数据库 ,
可用性 ,
Hadoop ,
LAMP ,
Apache Solr ,
Lucene ,
分布式编程

在7月10日举行的淘宝技术嘉年华淘宝技术专场上,来自淘宝产品技术部中间件团队曾宪杰(花名华黎)为大家介绍了近几年Java在淘宝的应用情况――《Java@Taobao》

演讲之初,曾宪杰先分四个阶段介绍了淘宝的建构变迁:

  • 2003年5月至2004年5月,小而快的简单架构,基于LAMP,符合当时的需求。
  • 2004年2月至2008年3月,一个懵懂的阶段,开始分为多个层次。这个阶段需要一个能够支撑百万到千万用户级的架构,必须容易扩展;系统从WebLogic迁移至了JBoss;开发了大量软件,例如TFS、iSearch、TDBM和CDN。
  • 2007年10月至2009年11月,开始有前瞻性,走向产品化及服务化。能够支持大型团队的并行开发,系统逐步模组化、中心化,可快速扩容,可用性大大提升,基础软件也开始走产品化道路。非核心的数据由Oracle迁移到了MySQL上,构建起了消息系统和服务框架,淘宝开放平台(TOP)正式上线。
  • 2009年8月至今的淘宝则更系统化、智能化及专业化,这是发展的必然方向。知识经验慢慢融入工具之中,降低了门槛,减少误操作几率;操作从人工处理逐步转为系统自主决策;在稳定性和性能方面有长足发展(在2010年以前eBay的稳定性要好于淘宝)。

曾宪杰指出所谓大型网站就是要同时满足高访问量和搞数据量的要求,核心是通过分布式系统解决数据的处理、存储及访问问题。随后,他根据淘宝网站的结构示意图,分别介绍了其中涉及到的Java基础技术产品。

首先是在阿里集团内被广泛使用的Turbine风格的MVC框架――WebX,其核心代码由阿里巴巴18创始人之一的周悦虹(宝宝)编写,具有很好的层次化、模块化特点,高度可扩展,WebX还对Velocity模板做了编译优化,在一般情况下能有20%至50%的性能提升。

其次是中间件中的服务框架,负责服务的发布、查询、调用和治理。该服务框架使用上简单透明,支持软负载(没有中间层,服务使用方直接连接到服务提供方,使用服务注册查找中心进行管理),灵活可控,方便扩展,为保证稳定性提供了有力支持。

接下来是实现系统松耦合的消息中间件Notify,这是一个高性能、高可靠、可扩展组件,支持最终一致性和订阅者集群。所谓订阅者集群,即将订阅消息的客户端分为多个集群,集群之间采用Topic方式,让每个集群都能收到消息,集群之中再按照Queue的方式,仅由一个客户端来处理消息。

在数据层上,为了更好地支持分库分表以及读写分离,也做了一定的封装,对上层应用而言还是在操作JDBC,实际则是在使用淘宝分布式数据层(TDDL),它能实现SQL解析、规则路由、数据合并;既可以用jar的方式在客户端直接连接数据库,也可以让客户端通过DBProxy服务器访问数据库;还支持非对称数据复制。如果将众多数据源看成一个矩阵,横向是同一数据库的主库与从库,纵向是不同的数据库,TDDL将数据源分为三个层次――TAtomDataSource,封装单个数据源,将配置进行集中管理;TGroupDataSource,封装横向的多个数据源,支持权重和节点的增减;TDataSouce,管理整个数据源矩阵。在具体的场景中,系统可以选择配置的粒度。

在分布式存储方面,淘宝基于HBase 0.90.2做了一些扩展,主要是提供了一个运维页面,修正了Master节点恢复时间过长以及备用Master无法自动接管的问题,并做了一些优化。林昊在下午的iDataForum上就HBase做了更详细的分享。截止两周前的使用情况:

  • 一淘拥有100台服务器,已使用60T。
  • 数据魔方拥有10台服务器,已使用500G。
  • 交易日志拥有12台服务器,已使用360G。
  • UDC拥有8台服务器,使用600G。
  • 此外还有众多应用,例如历史库搜索等。

搜索方面,基于LuceneSolr开发了终搜,可进行中心化的配置管理,容易接入,支持多种Dump机制。淘宝还拥有国内最大的Hadoop集群(云梯I系统),总容量超过1400台服务器,约30PB,利用率55.2%。主要做了JobTracker的异步化,NameNode优化,存储优化以及小作业优化。为了提升稳定性,除了哈勃(使用Cassandra存储数据,由云梯处理数据)对全网服务器基础数据进行采集分析以外,淘宝还有CSP监控,它主要监控核心应用,协助进行容量规划,以及服务的依赖于降级。目前CSP一共有15台服务器,15个库,对200多个系统进行监控,每日采集数据超过5000万行。淘宝如此大规模的系统的运维也是由系统完成,目前在系统的部署、发布、监控方面已经做了很多工作,在运维管理方面稍有欠缺。演讲最后,曾宪杰列举了众多各有特色的业务系统,分析了它们的架构,说明了各基础技术产品在这些系统中的应用。

如果您没有参加淘宝技术嘉年华,或者错过了心仪的主题,官方网站上已经陆续放出了演讲的幻灯片,可以访问日程安排页面进行下载。

丁雪丰 是InfoQ中文站编辑,满江红翻译组核心成员,出版过《Spring攻略》、《JRuby实战》等多部译著。主要关注领域:企业级应用、海量数据计算、动态语言应用等。

什么时候会放出视频吗? 发表人 辉 林 发表于
Re: 什么时候会放出视频吗? 发表人 黄 兵 发表于
  1. 返回顶部

    什么时候会放出视频吗?

    发表人 辉 林

    什么时候会放出视频吗?

  2. 返回顶部

    Re: 什么时候会放出视频吗?

    发表人 黄 兵

    有视频吗? 有的话,分享一下!