• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
淘宝Java中间件之路
 

淘宝Java中间件之路

on

  • 4,131 views

淘宝,JAVA,中间件,架构,taobao

淘宝,JAVA,中间件,架构,taobao

Statistics

Views

Total Views
4,131
Views on SlideShare
3,064
Embed Views
1,067

Actions

Likes
10
Downloads
0
Comments
1

1 Embed 1,067

http://www.mysqlops.com 1067

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 多谢多谢,写的非常好
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    淘宝Java中间件之路 淘宝Java中间件之路 Presentation Transcript

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