- 5
- 0
- 约5.4千字
- 约 42页
- 2018-12-30 发布于福建
- 举报
面向生产环境的soa或系统设计
* * * * * * * * * * * * * * * * * * * * * 基于分布式锁服务的并发控制 没有可加锁的资源,怎么办? 以操作实例Id作为锁标识。 每个锁都有生命周期(lock_delay) 过期锁被自我释放。 服务处理时间不应超过lock_delay。 服务接入 分布式锁服务 服务处理 1. 服务请求 2. 申请互斥锁 (带lock_delay) 3. 服务处理 5. 返回结果 4. 释放互斥锁 超时,自动释放锁 * 请求丢弃 服务请求包含处理期限 ( = 请求发出时间 + 客户端超时设置) 已过期的请求直接丢弃,腾出宝贵服务处理资源。 服务接入 服务处理 1. 从队列中取出服务请求 3. 丢弃请求 2. 请求已过期? (Yes) * 时间控制 延误的处理比不处理更糟糕。 一个业务活动是否要继续处理,取决于整体期限。 整体期限在统一业务活动上下文中传输。 考虑服务器时间差异补偿。 商户接入 订单处理 支付处理 清算处理 通信前置 资金记账 收费处理 营销处理 客户信息 银行支付清算网 互联网商户 x3 安全核查 基础业务平台 产品与解决方案 x2 00:00.000/1000ms 00:00.800/500ms 00:01.100 00:01.000 * 领域自检 不变式 状态变迁 资源 服务处理引擎 领域仓储 2. 加载并锁定资源root对象
原创力文档

文档评论(0)