程立:面向生产环境的soa系统设计

上传人:小** 文档编号:88107554 上传时间:2019-04-19 格式:PDF 页数:43 大小:2.98MB
返回 下载 相关 举报
程立:面向生产环境的soa系统设计_第1页
第1页 / 共43页
程立:面向生产环境的soa系统设计_第2页
第2页 / 共43页
程立:面向生产环境的soa系统设计_第3页
第3页 / 共43页
程立:面向生产环境的soa系统设计_第4页
第4页 / 共43页
程立:面向生产环境的soa系统设计_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《程立:面向生产环境的soa系统设计》由会员分享,可在线阅读,更多相关《程立:面向生产环境的soa系统设计(43页珍藏版)》请在金锄头文库上搜索。

1、准备好发射了吗?准备好发射了吗? 面向生产环境的SOA系统设计 程立 A IT168系统架构师大会,北京,2009年8月28日 典型典型SOASOA应用应用 展现服务 产品服务 公共服务 基础服务 集成服务 基础服务 公共服务公共服务公共服务 外部服务提供者 服务使用者 集成服务 一个SOA应用由 一系列服务松 散复合而成。 服务是基础架构单元服务是基础架构单元 作为基础架构 单元,服务具 有丰富的含义。 服务使用者 服务提供者 服务 质量约束 服务位置 功能描述 交互模式 通信协议 消息格式 服务使用者 服务的内部服务的内部 服务接入 流程、任务、决策 领域仓储 外部服务 资源 外部服务 领

2、域对象服务代理 每个服务都是 自包含、自主 运行的功能单 元。 SOASOA技术基础设施技术基础设施 SOA应用需要一 系列技术基础 设施的支持。 数据 企 业 服 务 总 线 展现与交互 流程与决策 组件与服务 数据与应用集成 跨 企 业 集 成 服务 目录 服务 监控 公共 技术 服务 后端应用 渠 道 browser客户端移动设备语音 外 部 企 业 应 用 一个典型的电子支付应用一个典型的电子支付应用 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 通过建设基础 业务平台,达 到快速构建与 改进上层的产

3、品与解决方案 的目标。 基础业务平台 产品与解决方案 x2 交付前,你胸有成竹吗交付前,你胸有成竹吗 性能 容量 健壮 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 ? x2 性能性能 针对性能的分析与优化 响应时间响应时间分析分析 如何合理地估 算服务的响应 时间? 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 200 250 10350100150300 (10*3

4、+350+100+150+300)+50=980=980 990 x2 30 响应时间优化响应时间优化 通过异步服务 降低响应时间 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 200 10350100150 (10*3+350+100+150+10)+50=690=690 700 async 10/300 x2 25030 响应时间优化响应时间优化 通过future调 用降低响应时 间 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付

5、清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 200 10350 (10*3+350+max(100,150)+10)+50=590=590 600 async 10/300 futurefuture 100150 x2 25030 关于关于性能的基础设施支持性能的基础设施支持 知晓所有服 务的响应时间 数据: 服务监 控 支持异步服 务使用: 服务 通信总线 支持Future 服务使用: 服 务通信总线 数据 企 业 服 务 总 线 展现与交互 流程与决策 组件与服务 数据与应用集成 跨 企 业 集 成 服务 目录 服务 监控 公共 技术 服务 后端应用 渠 道 brow

6、ser客户端移动设备语音 外 部 企 业 应 用 小结小结 容量容量 针对容量的分析与优化 吞吐量吞吐量分析分析 如何合理地估 算新业务上线 对容量的需求? 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 ? ? 50 50 15050505050 x2 50 50 50 150 吞吐量吞吐量分析分析 平台容量对业 务容量的约束 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方

7、案 50 50 15050505050 x2 50 50 50 15090 (3/5) 50*min(4/5, 3/5)=30=30 120 (4/5) 关键服务的吞吐量优化关键服务的吞吐量优化 充分扩容 平衡扩容 消除资源单 点瓶颈 服务使用者 服务提供者 服务 服务吞吐量 伸缩公式 伸缩上限 单资源吞吐量上限 非关键服务的吞吐量优化非关键服务的吞吐量优化 非关键的业务 服务的容量允 许短路,提供 降级服务。 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 optionalo

8、ptional 资源使用分析资源使用分析 估算新业务对 关键资源的使 用 (以SQL执行 次数为例) 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 5 10 61081510 x2 8 5 1513 (13+(15*2)+10=5323 (6*3+53+23+15+10)+10=129=129 134 资源使用优化资源使用优化 通用服务代 理缓存服务结 果。 服务提供者 支持检查资源 更新时间戳。 服 务 使 用 者 服 务 提 供 者 1. 查询(资源Id) 服务结果服务结果ca

9、checache key=服务+操作+资源Id value=资源Id+时间戳+服务结果 通 用 服 务 代 理 2. 检查cache (Y) 5. 返回cache结 果 3. 是否更新? 4. No 关于容量关于容量的基础设施支持的基础设施支持 知晓所有服 务的吞吐量与 资源使用: 服 务监控 支持 optional服务 使用: 服务通 信总线 服务结果 cache: 服务代 理 数据 企 业 服 务 总 线 展现与交互 流程与决策 组件与服务 数据与应用集成 跨 企 业 集 成 服务 目录 服务 监控 公共 技术 服务 后端应用 渠 道 browser客户端移动设备语音 外 部 企 业 应

10、用 服务 代理 小结小结 健壮健壮 在不确定的世界中交付确定的服务 单个服务的故障条件单个服务的故障条件 服务使用者 服务接入 流程、任务、决策 领域仓储 外部服务 资源 外部服务 领域对象服务代理 唯一确定的是 不确定。 并发请求重复请求超量请求 资源不可用 资源响应超时 通信中断 外部服务响应超时 外部服务违背功能契约 BUG处理超时 服务不可用 请求积压 处理中断 故障空间组合爆炸故障空间组合爆炸 处处都有多种 故障可能,可 能穷尽其组合 吗? 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台

11、产品与解决方案 x2 重复请求 BUG 外部服务中断 资源不可用 应对方式应对方式 避免发生 降低概率 控制影响 快速恢复 故障条件故障条件应对方式应对方式 超量请求配额控制 重复请求幂等控制 并发请求并发控制 请求积压请求丢弃 服务/资源响应超时时间控制 可恢复通信故障合理重试 处理中断事务/分布事务 BUG自检 局部配额控制局部配额控制 一种简单的 基于令牌的配 额控制方法。 令牌服务维 持本地各个服 务的可用令牌 数。 服务接入 令 牌 服 务 服务处理 1. 服务请 求 2. 申请令牌 (Y) 3. 服务处理4. 归还令牌 5. 返回结果 服务接入 令 牌 服 务 服务处理 1. 服务

12、请 求 2. 申请令牌 (N) 3. 拒绝请求 幂等服务幂等服务 同一个服务操 作实例最多只 允许执行一次。 资源 一个服务操作实例 两种操作实例标识法: (1) 基于业务活动 实例Id=业务活动Id+操作序号 (2) 基于资源 实例Id=资源Id+操作类型 动作1动作2动作3 一次业务活动执行 幂等控制幂等控制 一种简单的 基于操作日志 的幂等控制方 法。 操作Id上建 立唯一性约束。 操作日志不 仅用于幂等控 制,还可用于 操作审计等用 途。 服务接入 操 作 日 志 服 务 服务处理 1. 服务请 求 2. 登记日志 (OK) 3. 服务处理 4. 返回结果 服务接入 操 作 日 志 服

13、 务 服务处理 1. 服务请 求 2. 登记日志(违背唯一约束) 3. 拒绝处理 基于资源的并发控制基于资源的并发控制 ( (悲观悲观) ) 经典的资源 并发控制方式。 事务长度限 制了系统伸缩 能力。 不适用热点 资源。 资源 服务处理引擎 领域仓储 2. 加载并锁定资源root对 象 领域对象/服务 3. 领域对象操作 4. 持久领域对象 1. 开始事务 5. 提交事务 基于资源的并发控制基于资源的并发控制( (乐观乐观) ) 同样经典的 资源并发控制 方式。 事务长度短, 提高系统伸缩 性。 同样不适用 于热点资源。 资源 服务处理引擎 领域仓储 1. 加载领域对 象 领域对象/服务 2

14、. 领域对象操作 4. 更新领域对象同时检查并发 3. 开始事务 5. 提交事务 基于分布式锁服务的并发控制基于分布式锁服务的并发控制 没有可加锁的 资源,怎么办? 以操作实例 Id作为锁标识。 每个锁都有 生命周期 (lock_delay) 过期锁被自 我释放。 服务处理时 间不应超过 lock_delay。 服务接入 分 布 式 锁 服 务 服务处理 1. 服务请 求 2. 申请互斥锁 (带 lock_delay) 3. 服务处理 5. 返回结果 4. 释放互斥锁 超时,自动释放锁 请求丢弃请求丢弃 服务请求包 含处理期限 ( = 请求发出 时间 + 客户端 超时设置) 已过期的请 求直接

15、丢弃, 腾出宝贵服务 处理资源。 服务接入 服务处理 1. 从队列中取出服务请 求 3. 丢弃请求 2. 请求已过期? (Yes) 时间控制时间控制 延误的处理 比不处理更糟 糕。 一个业务活 动是否要继续 处理,取决于 整体期限。 整体期限在 统一业务活动 上下文中传输。 考虑服务器 时间差异补偿。 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 00:00.000/1000ms 00:00.800/500ms 00:01.100 00:01.000 领域自检领域自检 不变式

16、 状态变迁 资源 服务处理引擎 领域仓储 2. 加载并锁定资源root对 象 领域对象/服务 4. 领域对象操作 6. 持久领域对象 1. 开始事务 7. 提交事务 3. 领域对象自检 5. 领域对象自检 分布事务分布事务 (TCC(TCC模式模式) ) Try: 尝试执 行业务 Confirm:确 认执行业务 Cancel: 取 消执行业务 业务服务 tryXconfirmXcancelX 分布事务分布事务 (TCC(TCC模式模式) ) 基于TCC模式的 分布事务执行 过程示例。 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理营销处理客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 一次资金记账操作分为两步: (1) try: 完成所有账务处理 必须的业务检查与资源 (资金)预留。 (2) confirm: 释放资源并真 正进行账务处理。 confirm操作在整个业务活动 结束后

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号