探底∶Spring四种事务策略
信息来源:互联网 编辑:www.ntl-adc.com.cn 审核:Admin
客户来控制事务 WebService ntroller或者 题,由前端WebCo ice层不考虑事务问 前端事务策略Serv 。细粒度化 客户端的需求,太过于 已存在的接口满足不了 因是,Service 应用此类事务策略的原 。了客户端的原子性 rvice层,保证不 ,如果事务设置于Se 的Service方法 分成了两个或两个以上 ,一个完整的事务被拆 即从客户端的角度看来 。定外,还有旅店预定 ,他们除了提供机票预 择了一家网上旅游公司 鲁要出游巴厘岛,他选 举个经典的例子:皮皮 。旅店 题,结果没能成功订上 的系统合作时出现了问 游公司的系统在跟旅店 订上了机票,可是在旅 很显然,如果皮皮鲁光 。鲁去得成巴厘岛吗? 款吗?没有住处,皮皮 鲁需要为定上的机票付 两个单独的事务,皮皮 如果整个交易被分拆成 。
isor 0.2.3.2Adv 的事务模型,配置见1 策略SOA架构最常用 Service层事务 。
标 并发的用户数达不到指 能力不足,即能够支持 api调用,导致负载 辑处理掺杂很多DAO 过于粗粒度,复杂的逻 rvice层的API 演化而来,原因是Se rvice层事务策略 高并发事务策略从Se 。iontime失败 饿死”,而以sess 导致,*并行的交易“ nsaction锁, 但由于长时间的tra 于并发访问同一资源, 致交易失败,要么,由 ontimeout导 于transacti 过长,要么本次交易由 ,如果事务开启的时间 对资源上锁或MVCC 由于事务的开启意味着 。的事务剥离 应的Service层 Wrapper,将对 ransaction 所有DAO做出一个T 层推,即把需要访问的 分:将事务的划分往底 因此希望将锁的时间拆 。
可能读到过期的数据 存在的风险只读事务有 。
探底∶Spring四种事务策略
的数据进行计算 当前交易却在使用过期 能更新了这一数据,而 了锁,另一个事务有可 由于出了DAO就释放 也就是在数据取出后, 。
写事务存在乐观锁问题。
对实体进行了更改 nsaction已经 现,其他并行的tra 交更改,可是这时却发 后续的DAO操作中提 对象进行更新,然后在 cheddomain 外的计算中对deta 就已经释放,在DAO 同样由于出了DAO锁 。结果 on抛出,这是期待的 ockExcepti ptimisticL sistence.O 此javax.per rsion递增),因 每次的更新,都将ve sion+1,(由于 不是实体当前的ver 现,version值 制,由于提交更新时发 n的乐观锁并发访问控 nateversio 如果是基于hiber 。户重试 交易回滚,前端提示用 。合 明这一事务策略并不适 tion过于频繁,说 cLockExcep .Optimisti ersistence 但如果javax.p 。isticLock 或许需要Pessim 。
PGRADE); LockMode.U r.class,1, n.get(Orde der)sessio Ordero=(Or 。
探底∶Spring四种事务策略
的整体架构问题 一策略前,请三思系统 实现的策略,在考虑这 指出的是,这是个很难 高性能涉外事务首先得 。的业务逻辑如下: 行卡收钱问题),正常 rcharge(即银 典型的例子是orde 。
情况) 单的跳转到支付系统的 ceAPI(不考虑简 提供WebServi 一流程,支付网关往往 付网关打交道来完成这 ce系统都是通过和支 大部分ecommer 。问题是:。
行? 用,业务要不要往下进 如果支付网关暂时不可 。
还是异步模式? 支付网关的集成是同步 回答这一问题涉及到和 。
用域中? 包含在声明式的事务作 外部服务的调用要不要 如果采用同步模式,对 。
如果包含在事务中。
往往就是系统的瓶颈 elocking,它 andlongtim ransaction 的longtimet 那么就形成了不折不扣 。最关键的功能) (想想,收钱可是系统 。
如果不包含在事务中。
(见以上序列图) 会继续step4,5 rge的order才 问题,只能成功cha 式避免以上复杂的事务 ry的基于JMS的模 列图是采用异步ret (TCC)策略以上序 el/Confirm 复杂的TryCanc (中文叫冲正),采用 ransaction ensating_t 复杂的方案是Comp 怎么来保证ACID? 。
isor 0.2.3.2Adv 的事务模型,配置见1 策略SOA架构最常用 Service层事务 。
标 并发的用户数达不到指 能力不足,即能够支持 api调用,导致负载 辑处理掺杂很多DAO 过于粗粒度,复杂的逻 rvice层的API 演化而来,原因是Se rvice层事务策略 高并发事务策略从Se 。iontime失败 饿死”,而以sess 导致,*并行的交易“ nsaction锁, 但由于长时间的tra 于并发访问同一资源, 致交易失败,要么,由 ontimeout导 于transacti 过长,要么本次交易由 ,如果事务开启的时间 对资源上锁或MVCC 由于事务的开启意味着 。的事务剥离 应的Service层 Wrapper,将对 ransaction 所有DAO做出一个T 层推,即把需要访问的 分:将事务的划分往底 因此希望将锁的时间拆 。
可能读到过期的数据 存在的风险只读事务有 。
探底∶Spring四种事务策略
的数据进行计算 当前交易却在使用过期 能更新了这一数据,而 了锁,另一个事务有可 由于出了DAO就释放 也就是在数据取出后, 。
写事务存在乐观锁问题。
对实体进行了更改 nsaction已经 现,其他并行的tra 交更改,可是这时却发 后续的DAO操作中提 对象进行更新,然后在 cheddomain 外的计算中对deta 就已经释放,在DAO 同样由于出了DAO锁 。结果 on抛出,这是期待的 ockExcepti ptimisticL sistence.O 此javax.per rsion递增),因 每次的更新,都将ve sion+1,(由于 不是实体当前的ver 现,version值 制,由于提交更新时发 n的乐观锁并发访问控 nateversio 如果是基于hiber 。户重试 交易回滚,前端提示用 。合 明这一事务策略并不适 tion过于频繁,说 cLockExcep .Optimisti ersistence 但如果javax.p 。isticLock 或许需要Pessim 。
PGRADE); LockMode.U r.class,1, n.get(Orde der)sessio Ordero=(Or 。
探底∶Spring四种事务策略
的整体架构问题 一策略前,请三思系统 实现的策略,在考虑这 指出的是,这是个很难 高性能涉外事务首先得 。的业务逻辑如下: 行卡收钱问题),正常 rcharge(即银 典型的例子是orde 。
情况) 单的跳转到支付系统的 ceAPI(不考虑简 提供WebServi 一流程,支付网关往往 付网关打交道来完成这 ce系统都是通过和支 大部分ecommer 。问题是:。
行? 用,业务要不要往下进 如果支付网关暂时不可 。
还是异步模式? 支付网关的集成是同步 回答这一问题涉及到和 。
用域中? 包含在声明式的事务作 外部服务的调用要不要 如果采用同步模式,对 。
如果包含在事务中。
往往就是系统的瓶颈 elocking,它 andlongtim ransaction 的longtimet 那么就形成了不折不扣 。最关键的功能) (想想,收钱可是系统 。
如果不包含在事务中。
(见以上序列图) 会继续step4,5 rge的order才 问题,只能成功cha 式避免以上复杂的事务 ry的基于JMS的模 列图是采用异步ret (TCC)策略以上序 el/Confirm 复杂的TryCanc (中文叫冲正),采用 ransaction ensating_t 复杂的方案是Comp 怎么来保证ACID? 。
本文地址:探底∶Spring四种事务策略
