11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

曾宪杰谈 Java 在淘宝的应用

  • 2011-07-14
  • 本文字数:1885 字

    阅读完需:约 6 分钟

在 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。
  • 此外还有众多应用,例如历史库搜索等。

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

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

2011-07-14 00:0711278
用户头像

发布了 135 篇内容, 共 55.5 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

电梯“惊魂”事故频频发生,可视化全平台覆盖,远程值守高效监控

一只数据鲸鱼

数据可视化 智慧城市 智慧园区 智慧电梯

法国政府的"安全 "WhatsApp替代品在短短90分钟内被破解

WorkPlus Lite

CloudQuery 使用教程之《No.2数据查询(上)》

CloudQuery社区

sql dba 数据库管理工具 国产数据库 开发运维

Rust从0到1-自动化测试-运行测试

rust 自动化测试 Automated Tests 运行测试

今天带你详细了解各组件原理!面试建议

欢喜学安卓

android 程序员 面试 移动开发

Facebook Chat真的是世界第三大即时通讯客户端吗?

WorkPlus Lite

Spring @Transactional 注解是如何执行事务的?

程序员小航

Java MySQL spring 事务 代理

存储大师班:NFS 的诞生与成长

青云技术社区

存储 分布式存储 NFS

什么是SSD Sanitize数据擦除技术?

怀瑾握瑜

存储 SSD 数据保护 备份 删除

WICC 2021来袭 融云领衔探索互联网通信云技术新方向

融云 RongCloud

JAVA 面向对象 (十二)-- 关键字this

加百利

Java 关键字 this 6月日更

让AI发展避开“暗礁”,索信达控股推出自研区块链+联邦学习解决方案

索信达控股

区块链 金融科技 联邦学习 金融监管 风控

一步一步实现 Vue 3 Reactivity

pingan8787

JavaScript Vue 响应式 Vue 3

听说一代数据库大侠都是这样练成的?

华为云数据库小助手

数据库 GaussDB 华为云数据库

用超出行业平均薪资招人?

石云升

职场经验 管理经验 6月日更

云小课 | MRS基础入门之HDFS组件介绍

华为云开发者联盟

hadoop hdfs 分布式文件系统 MapReduce服务 数据读写

英特尔院士Johanna Swan:极致的异构集成是半导体封装未来趋势

新闻科技资讯

ECMAScript 2021 (ES12)通过,正式写入 ECMAScript 标准

清秋

ecmascript 新闻资讯 ES2021 ES12 标准

react源码解析20.总结&第一章的面试题解答

全栈潇晨

React

云管理平台建设,这项功能必不可缺 ↓

BoCloud博云

云管理平台

作为后端开发者的思考:如何看待如今的前端架构

DisonTangor

大前端 后端

🏆「终」【JVM 性能调优】「CMS 垃圾回收器」优化实战分析(补充版)

洛神灬殇

CMS JVM GC调优 6月日更

技术解密 |阿里云多媒体 AI 团队拿下 CVPR2021 5 冠 1 亚成绩的技术分享

阿里云视频云

阿里云 AI 计算机视觉 经验分享 CVPR

我用来阻止你摸鱼看直播、知乎和微博的Chrome插件

OBKoro1

chrome 效率工具 大前端 工作效率 chrome扩展

Android快速转战Kotlin教程,附详细答案

欢喜学安卓

android 程序员 面试 移动开发

华为云数据库GaussDB(for Cassandra)揭秘:内存异常增长的排查经历

华为云开发者联盟

nosql 云原生 Cassandra 华为云数据库 GaussDB(for Cassandra)

深度学习分类任务常用评估指标

华为云开发者联盟

机器学习 深度学习

英特尔拥抱开源,岂能没有杀手锏?

新闻科技资讯

使用高级视频质量工具 AVQT 评估视频 | WWDC 演讲实录

网易云信

机器学习 算法 音视频

怎么办,linux的常用命令就是记不住?于是每天推一些linux指令实践总结

我是阿沐

面试 操作系统 linux运维

oneAPI开启新征程 英特尔拥抱开源打造软件生态

新闻科技资讯

曾宪杰谈Java在淘宝的应用_Java_丁雪丰_InfoQ精选文章