面向生产环境的SOA系统设计 by 程立 (青苹果).ppt_第1页
面向生产环境的SOA系统设计 by 程立 (青苹果).ppt_第2页
面向生产环境的SOA系统设计 by 程立 (青苹果).ppt_第3页
面向生产环境的SOA系统设计 by 程立 (青苹果).ppt_第4页
面向生产环境的SOA系统设计 by 程立 (青苹果).ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

准备好发射了吗 面向生产环境的SOA系统设计 程立A IT168系统架构师大会 北京 2009年8月28日 09 14 典型SOA应用 展现服务 产品服务 公共服务 基础服务 集成服务 基础服务 公共服务 公共服务 公共服务 外部服务提供者 服务使用者 集成服务 一个SOA应用由一系列服务松散复合而成 09 14 wWw zuaNshiB 服务使用者 服务的内部 外部服务 资源 外部服务 每个服务都是自包含 自主运行的功能单元 09 14 服务是基础架构单元 作为基础业务 应用与技术架构单元 服务具有丰富的含义 服务使用者 服务提供者 服务 质量约束服务位置功能描述交互模式通信协议消息格式 09 14 SOA技术基础设施 SOA应用需要一系列技术基础设施的支持 数据 企业服务总线 展现与交互 流程与决策 组件与服务 数据与应用集成 跨企业集成 服务目录 服务监控 公共技术服务 后端应用 渠道 browser 客户端 移动设备 语音 外部企业应用 09 14 一个典型的电子支付应用 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 通过建设基础业务平台 达到快速构建与改进上层的产品与解决方案的目标 基础业务平台 产品与解决方案 x2 09 14 交付前 你胸有成竹吗 性能容量健壮 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 09 14 性能 针对性能的分析与优化 09 14 响应时间分析 如何合理地估算服务的响应时间 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 200 250 10 350 100 150 300 10 3 350 100 150 300 50 980 990 x2 30 09 14 响应时间优化 通过异步调用降低响应时间 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 200 10 350 100 150 10 3 350 100 150 10 50 690 700 async 10 300 x2 250 30 09 14 响应时间优化 通过future异步调用降低响应时间 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 200 10 350 10 3 350 max 100 150 10 50 590 600 async 10 300 future future 100 150 x2 250 30 09 14 关于性能的基础设施支持 知晓所有服务的响应时间数据 服务监控支持各种异步服务使用 服务通信总线 数据 企业服务总线 展现与交互 流程与决策 组件与服务 数据与应用集成 跨企业集成 服务目录 服务监控 公共技术服务 后端应用 渠道 browser 客户端 移动设备 语音 外部企业应用 09 14 小结 在设计阶段就必须估算与优化性能准确估算性能依赖于真实的监控数据 尤其是业务平台的性能监控数据灵活的服务通信设施使提升性能成为可能 09 14 容量 针对容量的分析与优化 09 14 吞吐量分析 如何合理地估算新业务上线对容量的需求 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 50 50 150 50 50 50 50 x2 50 50 50 150 09 14 吞吐量分析 平台容量对业务容量的约束 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 50 50 150 50 50 50 50 x2 50 50 50 150 90 3 5 120 4 5 09 14 关键服务的吞吐量优化 充分扩容平衡扩容消除资源单点瓶颈 服务使用者 服务提供者 服务 服务吞吐量伸缩公式伸缩上限单资源吞吐量上限 09 14 非关键服务的吞吐量优化 非关键的业务服务的容量允许短路 提供降级服务 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 optional optional 09 14 资源使用分析 估算新业务对关键资源的使用 以SQL执行次数为例 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 5 10 6 10 8 15 10 x2 8 5 15 13 13 15 2 10 53 23 6 3 53 23 15 10 10 129 134 09 14 资源使用优化 通用服务代理缓存服务结果 服务提供者支持检查资源更新时间戳 服务使用者 服务提供者 1 查询 资源Id 服务结果cachekey 服务 操作 资源Idvalue 资源Id 时间戳 服务结果 通用服务代理 2 检查cache Y 5 返回cache结果 3 是否更新 4 No 09 14 关于容量的基础设施支持 知晓所有服务的吞吐量与资源使用 服务监控支持optional服务使用 服务通信总线服务结果cache 服务代理 数据 企业服务总线 展现与交互 流程与决策 组件与服务 数据与应用集成 跨企业集成 服务目录 服务监控 公共技术服务 后端应用 渠道 browser 客户端 移动设备 语音 外部企业应用 服务代理 09 14 小结 在设计阶段就必须估算与优化容量充分 平衡对业务平台进行扩容 既有前瞻性又控制成本针对 热点 进行优化准确估算容量依赖于真实的监控数据区别业务的等级 09 14 健壮 在不确定的世界中交付确定的服务 09 14 单个服务的故障条件 服务使用者 外部服务 资源 外部服务 唯一确定的是不确定 并发请求 重复请求 超量请求 资源不可用 资源响应超时 通信中断 外部服务响应超时 外部服务违背功能契约 BUG 处理超时 服务不可用 请求积压 处理中断 09 14 故障空间组合爆炸 处处都有多种故障可能 可能穷尽其组合吗 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 重复请求 BUG 外部服务中断 资源不可用 09 14 应对方式 避免发生降低概率控制影响快速恢复 09 14 局部配额控制 一种简单的基于令牌的配额控制方法 令牌服务维持本地各个服务的可用令牌数 服务接入 令牌服务 服务处理 1 服务请求 2 申请令牌 Y 3 服务处理 4 归还令牌 5 返回结果 服务接入 令牌服务 服务处理 1 服务请求 2 申请令牌 N 3 拒绝请求 09 14 幂等服务 同一个服务操作实例最多只允许执行一次 资源 一个服务操作实例 两种操作实例标识法 基于业务活动实例Id 业务活动Id 操作序号 2 基于资源实例Id 资源Id 操作类型 动作1 动作2 动作3 一次业务活动执行 09 14 幂等控制 一种简单的基于操作日志的幂等控制方法 操作实例Id上建立唯一性约束 操作日志不仅用于幂等控制 还可用于操作审计等用途 服务接入 操作日志服务 服务处理 1 服务请求 2 登记日志 OK 3 服务处理 4 返回结果 服务接入 操作日志服务 服务处理 1 服务请求 2 登记日志 违背唯一约束 3 拒绝处理 09 14 基于资源的并发控制 悲观 经典的资源并发控制方式 事务长度限制了系统伸缩能力 不适用热点资源 资源 服务处理引擎 领域仓储 2 加载并锁定资源root对象 领域对象 服务 3 领域对象操作 4 持久领域对象 1 开始事务 5 提交事务 09 14 基于资源的并发控制 乐观 同样经典的资源并发控制方式 事务长度短 提高系统伸缩性 同样不适用于热点资源 资源 服务处理引擎 领域仓储 1 加载领域对象 领域对象 服务 2 领域对象操作 4 更新领域对象同时检查并发 3 开始事务 5 提交事务 09 14 基于分布式锁服务的并发控制 没有可加锁的资源 怎么办 以操作实例Id作为锁标识 每个锁都有生命周期 lock delay 过期锁被自我释放 服务处理时间不应超过lock delay 服务接入 分布式锁服务 服务处理 1 服务请求 2 申请互斥锁 带lock delay 3 服务处理 5 返回结果 4 释放互斥锁 超时 自动释放锁 09 14 请求丢弃 服务请求包含处理期限 请求发出时间 客户端超时设置 已过期的请求直接丢弃 腾出宝贵服务处理资源 服务接入 服务处理 1 从队列中取出服务请求 3 丢弃请求 2 请求已过期 Yes 09 14 时间控制 延误的处理比不处理更糟糕 一个业务活动是否要继续处理 取决于整体期限 整体期限在统一业务活动上下文中传输 考虑服务器时间差异补偿 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 00 00 000 1000ms 00 00 800 500ms 00 01 100 00 01 000 09 14 领域自检 不变式状态变迁 资源 服务处理引擎 领域仓储 2 加载并锁定资源root对象 领域对象 服务 4 领域对象操作 6 持久领域对象 1 开始事务 7 提交事务 3 领域对象自检 5 领域对象自检 09 14 分布事务 TCC模式 Try 尝试执行业务Confirm 确认执行业务Cancel 取消执行业务 业务服务 tryX confirmX cancelX 09 14 分布事务 TCC模式 基于TCC模式的分布事务执行过程示例 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 一次资金记账操作分为两步 try 完成所有账务处理必须的业务检查与资源 资金 预留 confirm 释放资源并真正进行账务处理 confirm操作在整个业务活动结束后由系统自动完成 09 14 分布事务 补偿模式 do 真正执行业务compensate 业务补偿 业务服务 doX compensateX 09 14 分布事务 补偿模式 一次补偿模式的业务执行过程 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 如果整个业务活动回滚 而积分已发放 该操作可以被补偿 09 14 关于健壮的基础设施支持 控制请求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论