SlideShare a Scribd company logo
淘宝 Java 中间件之路
About me 姓名 : 曾宪杰 花名 : 华黎 淘宝 - 产品技术 - 通用产品 团队博客  http://rdc.taobao.com/team/jm/ Sina 微博  @ 曾宪杰 _ 华黎 Twitter @vanadies10
Agenda 淘宝没有 Java 中间件之前 Java 中间件在淘宝的诞生和发展 Java 中间件在淘宝的现状和未来
淘宝没有 Java 中间件之前
那是在 2007 年下半年的时候 LoadBalance WebApp WebApp Cache 分布式存储 搜索 DB DB CDN
Java 中间件在淘宝的诞生和发展 消息中间件 服务框架 分布式数据层
消息中间件 -Notify
消息中间件 Message-oriented middleware  ( MOM ) is software infrastructure focused on sending and receiving messages between distributed systems.   ---  from  wikipedia.org MOM 的优点 松耦合 异步处理
消息中间件 业务系统完成一件事情后,需要其他系统进行处理的,通过定时程序来驱动 业务系统 Do something 业务 DB 定时程序 获取任务 Do action
消息中间件 - 我们的需求 轻量级支持最终一致 支持订阅者集群 消息可靠
消息中间件 - 最终一致性 Publisher Notify Storage T1 发送 half 消息 T4 业务操作 T3 返回消息入库结果 T2 存储 half 消息 T6  提交 : 更新数据库 标识消息可发送 回滚:删除消息 S1 定期检查未提交的消息 S2 提交 / 回滚 本地事务域 本地事务域 业务操作 S3  提交 : 更新数据库 标识消息可发送 回滚:删除消息 T5 提交 / 回滚
消息中间件 - 订阅者集群 订阅者集群:消息的一个逻辑上的订阅者是有多个物理节点组成的一个集群 A1 和 A2 是 SystemA 中的两个机器 A1 和 A2 共同来消费投递到 SystemA 的消息 B1 和 B2 也是类似的关系
消息中间件 -Queue In JMS 每个连接都有唯一的 ClientId 消息 (1-8) Queue JMS Server A1 A2 B1 B2 1 , 5 2 , 6 3 , 7 4 , 8
消息中间件 -Topic In JMS 每个连接都有唯一的 ClientId 消息 (1-8) JMS Server A1 A2 B1 B2 Topic 1-8 1-8 1-8 1-8
消息中间件 - 消息可靠 Oracle+ 小型机 + 高端存储 写双份 Mysql Mysql Replication 基于文件 基于内存 .
有了 Notify 之后 LoadBalance WebApp WebApp Cache 分布式存储 搜索 DB DB CDN 消息中间件 (Notify)
服务框架 -HSF
服务框架 - 当时面临的问题 上百人维护一个代码百万行的前台核心应用 共享一个代码模块,部署分离 多个业务系统中的代码重复编写 数据库连接数接近瓶颈 混乱,混乱,混乱
服务框架 - 系统示意结构 商品中心 用户中心 交易中心 商品 用户 交易 商品系统 商品系统 登录注册 登录注册 交易系统 交易系统 服务化 解决了业务核心的稳定和一致的问题 解决了重要数据库的连接数的问题 系统分解后,提升了效率和稳定性
服务框架 - 我们的需求 简单好用,像使用 Spring Bean 一样 请求路由灵活可控 提供稳定性支持 .
服务框架 系统间调用 调用者 服务提供者 How ?
服务框架 系统间调用 调用者 服务提供者 How ? 调用者 服务提供者
服务框架 系统间调用 调用者 服务提供者 调用者 服务提供者 调用者 服务提供者 调用者 服务提供者
服务框架 - 结构 调用者 服务提供者 调用者 服务提供者 服务注册查找中心 发布服务地址信息 定于服务地址信息 中心会主动推送 请求直接送达服务端 没有中心代理服务器 HSF HSF HSF HSF
服务框架 - 结构 调用者 服务提供者 调用者 服务提供者 服务注册查找中心 发布服务地址信息 定于服务地址信息 中心会主动推送 请求直接送达服务端 没有中心代理服务器 HSF HSF HSF HSF
服务框架 - 路由 调用者 调用者 配置中心 推送路由规则 基于接口的路由 基于方法的路由 基于参数的路由 HSF HSF
服务框架 - 服务端保护 服务提供者 服务提供者 配置中心 推送保护策略 线程池隔离和并发数控制 基于请求来源的流控 HSF HSF
有了 HSF 之后 LoadBalance WebApp WebApp Cache 分布式存储 搜索 DB DB CDN 消息中间件 (Notify) Service Service 服务框架 (HSF)
分布式数据层 -TDDL
分布式数据层 User User1 User2 User1-M User2-M User2-S User1-S 分库 分表 读写 分离 数据库架构的演进 Trade/User Trade 垂直拆分
分布式数据层
分布式数据层
分布式数据层 User1-M User2-M User2-S User1-S TAtomDataSource TGroupDataSource TDataSource 数据源的三层重构 业务可以灵活选择
分布式数据层 - 读写分离 Master Slave
分布式数据层 - 读写分离 Slave Master1 Slave1-1 Slave1-2 通过拦截 SQL 操作 -> 记录日志 -> 完成复制 支持不同维度、不同目标的复制 目前也完成了对于 Mysql 的日志解析,可以基于日志进行复制
分布式数据层 - 提供 DbProxy Client->DB 方式走向了 Client->Server->DB
分布式数据层 SQL 解析,路由规则,数据合并 Client->DB 和 Client->Server->DB 模式 非对称数据复制 三层的数据源结构
有了 TDDL 之后 LoadBalance WebApp WebApp Service Service Cache 分布式存储 搜索 DB DB 消息中间件 (Notify) 服务框架 (HSF) CDN Tddl Tddl Tddl
Java 中间件在淘宝的现状和未来
Java 中间件现状 - 一些数据 Notify 每日消息总量   4.4 亿 。 Half 消息的量    1 亿 5 千万 / 天 ; Committed 的消息的量    2 亿 9 千万 / 天 每日消息投递条次约 15 亿次 平均消息大小 1.8k 总共 78 个消息主题, 786 种消息类型,部分消息的订阅者超过 30 个集群 HSF 线上提供服务数量: 600+ 每日总调用量: 150 亿 + TDDL 每日 SQL 执行量, 30 亿 + 。 每日数据复制量约 2.8 亿 + 。
Java 中间件现状 - 存在的问题 易用性 开发 调试 运维 稳定性 降级 隔离 对应用的保护
Java 中间件未来 开源 根据业务需求的新功能 易用性和稳定性
Thanks !

More Related Content

What's hot (20)

PDF
D baa s_in_xiaomi
hdksky
 
PPT
张铁安:Feed系统架构浅析
Leechael
 
PPTX
Accelerate Database as a Service(DBaaS) in Cloud era
Junchi Zhang
 
PDF
盛大游戏运维体系
Ken Liu
 
PDF
鹰眼下的淘宝_EagleEye with Taobao
terryice
 
PDF
豆瓣数据架构实践
Xupeng Yun
 
PDF
MySQL 高可用方案及成功案例
郁萍 王
 
PPT
腾讯大讲堂24 qq show2.0重构历程
areyouok
 
PDF
MySQL5.6&5.7 Cluster 7.3 Review
郁萍 王
 
PDF
MySQL 網路參考架構
郁萍 王
 
PPTX
中大型规模的网站架构运维 Saac
Chao Zhu
 
PDF
艺龙旅行网架构案例分享-Qcon2011
Yiwei Ma
 
PDF
开源+自主开发 - 淘宝软件基础设施构建实践
Wensong Zhang
 
PDF
Bdwf11 netezza james_zheng
bigdatawf
 
PPTX
Memcached vs redis
qianshi
 
PPT
数据访问层开发实践
xcq
 
PPT
Selling sybase hds solution for banking
focusbi
 
PPT
Cassandra简介.ppt
james tong
 
PDF
大数据时代feed架构 (ArchSummit Beijing 2014)
Tim Y
 
PDF
MySQL5.6新功能
郁萍 王
 
D baa s_in_xiaomi
hdksky
 
张铁安:Feed系统架构浅析
Leechael
 
Accelerate Database as a Service(DBaaS) in Cloud era
Junchi Zhang
 
盛大游戏运维体系
Ken Liu
 
鹰眼下的淘宝_EagleEye with Taobao
terryice
 
豆瓣数据架构实践
Xupeng Yun
 
MySQL 高可用方案及成功案例
郁萍 王
 
腾讯大讲堂24 qq show2.0重构历程
areyouok
 
MySQL5.6&5.7 Cluster 7.3 Review
郁萍 王
 
MySQL 網路參考架構
郁萍 王
 
中大型规模的网站架构运维 Saac
Chao Zhu
 
艺龙旅行网架构案例分享-Qcon2011
Yiwei Ma
 
开源+自主开发 - 淘宝软件基础设施构建实践
Wensong Zhang
 
Bdwf11 netezza james_zheng
bigdatawf
 
Memcached vs redis
qianshi
 
数据访问层开发实践
xcq
 
Selling sybase hds solution for banking
focusbi
 
Cassandra简介.ppt
james tong
 
大数据时代feed架构 (ArchSummit Beijing 2014)
Tim Y
 
MySQL5.6新功能
郁萍 王
 

淘宝Java中间件之路 it168