Más contenido relacionado
La actualidad más candente (18)
Similar a 淘宝Java中间件之路 (20)
淘宝Java中间件之路
- 2. About me
• 姓名:曾宪杰
• 花名:华黎
• 淘宝-产品技术-通用产品
• 团队博客 http://rdc.taobao.com/team/jm/
• Sina微博 @曾宪杰_华黎
• Twitter @vanadies10
SACC2011
- 5. 那是在2007年下半年的时候
LoadBalance
CDN WebApp WebApp
分布
搜索 Cache 式存
储
DB DB
SACC2011
- 8. 消息中间件
• 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
- 9. 消息中间件
定时程序
业务系统
获取任务
Do something
Do action
业务DB
• 业务系统完成一件事情后,需要其他系统进行处理的,通
过定时程序来驱动
SACC2011
- 11. 消息中间件-最终一致性
本地事务域
T4业务操作
Publisher 业务操作
T1 T3返 T5 S1
发 回消 提 定期
送 息入 交/ 检查 S2提交/回滚
hal 库结 回 未提
f消 果 滚 交的
息 消息
T2存储half消息
Notify Storage
S3 提交:更新数据库
标识消息可发送
T6 提交:更新数据库
回滚:删除消息
标识消息可发送
本地事务域
回滚:删除消息
SACC2011
- 13. 消息中间件-Queue In JMS
• 每个连接都有唯一的ClientId
JMS Server
消息(1-8)
Queue
A1 A2 B1 B2
1,5 2,6 3,7 4,8
SACC2011
- 14. 消息中间件-Topic In JMS
• 每个连接都有唯一的ClientId
A1 1-8
JMS Server A2 1-8
消息(1-8)
Topic
B1 1-8
B2 1-8
SACC2011
- 16. 有了Notify之后
LoadBalance
CDN WebApp WebApp
消息
分布 中间
搜索 Cache 式存 件
储 (Notify)
DB DB
SACC2011
- 18. 服务框架-当时面临的问题
• 上百人维护一个代码百万行的前台核心应用
– 共享一个代码模块,部署分离
• 多个业务系统中的代码重复编写
• 数据库连接数接近瓶颈
SACC2011
混乱,混乱,混乱
- 19. 服务框架-系统示意结构
商品 商品 登录 登录 交易 交易
系统 系统 注册 注册 系统 系统
商品 用户 交易
中心 中心 中心
商品 用户 交易
服务化
解决了业务核心的稳定和一致的问题
解决了重要数据库的连接数的问题
系统分解后,提升了效率和稳定性
SACC2011
- 24. 服务框架-结构
服务提
调用者
供者
HSF HSF
请求直接送达服务端
没有中心代理服务器
服务提
调用者
供者
HSF HSF
服务注册
查找中心
定于服务地址信息 发布服务地址信息
中心会主动推送
SACC2011
- 25. 服务框架-结构
服务提
调用者
供者
HSF HSF
请求直接送达服务端
没有中心代理服务器
服务提
调用者
供者
HSF HSF
服务注册
查找中心
定于服务地址信息 发布服务地址信息
中心会主动推送
SACC2011
- 26. 服务框架-路由
调用者
HSF
配置中心
调用者
HSF
推送路由规则
基于接口的路由
基于方法的路由
基于参数的路由
SACC2011
- 27. 服务框架-服务端保护
服务提
供者
HSF
配置中心
服务提
供者
HSF
推送保护策略
线程池隔离和并发数控制
基于请求来源的流控
SACC2011
- 28. 有了HSF之后
LoadBalance
CDN WebApp WebApp
消息
分布 中间
搜索 Cache 式存 服务框架(HSF) 件
储 (Notify)
Service Service
DB DB
SACC2011
- 30. 分布式数据层
数据库架构的演进
垂直 分库 User1 读写 User1-M User1-S
拆分 分表 分离
Trade
User
/User
User2 User2-M User2-S
Trade
SACC2011
- 33. 分布式数据层
TAtomDataSource
User1-M User1-S
TDataSource
User2-M User2-S
数据源的三层重构 TGroupDataSource
业务可以灵活选择
SACC2011
- 38. 有了TDDL之后
LoadBalance
CDN WebApp WebApp
消息
分布
中间
搜索 Cache 式存 服务框架(HSF)
件
储
(Notify)
Service Service
T T
d d
d d
l l
DB Tddl DB
SACC2011
- 40. 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