Toc
  1. 调用幂等性
    1. 数据库唯一索引
    2. 缓存唯一标时
  • 调用顺序性
    1. 中间服务请求路由
    2. 分布式锁强一致
  • Toc
    0 results found
    BOBO
    接口幂等
    2020/10/18 系统设计

    调用幂等性

    数据库唯一索引

    将接口的唯一标时,如 orderId 作为数据库中唯一索引,使数据插入时失败,失败时不重复处理。

    缓存唯一标时

    通过缓存判断此订单是否已经处理,需要考虑缓存服务宕机时的处理。

    1. 缓存需要持久化
    2. 缓存宕机时阻塞请求或者返回失败,等待缓存恢复后继续处理

    调用顺序性

    中间服务请求路由

    所有请求通过中间服务进行路由,将同一队列中的请求标识顺序并路由到同一台服务器,在服务内做缓存队列,然后顺序处理。

    分布式锁强一致

    同一队列中的请求通过拿锁保证顺序性,根据顺序标识,序号 3 在 2 拿锁成功前会拿锁失败。拿锁成功后调用成功。为保证上层服务快速响应,可以添加消息中间件。

    支付宝
    微信
    Simple is Awesome