当前位置: 代码迷 >> Web前端 >> 怎么实现Web Service的Idempotency
  详细解决方案

怎么实现Web Service的Idempotency

热度:161   发布时间:2012-08-26 16:48:06.0
如何实现Web Service的Idempotency
摘自《SOA In Practice》

一个Service执行一次请求产生的结果,如果跟执行多次同样的请求产生的结果相同,则可以说这个Service满足了Idempotency

1. Reading Service都是Idempotent
2. "update bonus = 100 where id = 3" 是Idempotent
3. "update bonus += 100 where id =3 " 不是Idempotent --- 操作结果依赖数据原先状态的Service都不是Idempotent
    为了把这种Service变成 Idempotent,应该遵守这样一种契约:Consumer的请求里应该有一个RequestId, 重发时仍然使用同样的RequestId; Provider收到请求后要将RequestId存起来,如果新请求的RequestId已经存在了,就不要再执行相应的操作。
  
  相关解决方案