幂等性,全局唯一ID

网上说的幂等性的文章:
使用全局唯一ID,就是根据业务的操作和内容生成一个全局ID,在执行操作前先根据这个全局唯一ID是否存在,来判断这个操作是否已经执行。如果不存在则把全局ID,存储到存储系统中,比如数据库、redis等。如果存在则表示该方法已经执行。
我想不明白,如果这样的话,那我每次请求接口的时候都要生成一个全局唯一ID吗?请求同一个接口,如果参数什么的一样是不是生成的ID也应该是一样的了?

阅读 2.1k
评论 2018-01-18 提问
    1 个回答
    krun
    • 6.4k

    原来只说了全局唯一ID的事,忘了说幂等了,不过这个话题按我目前的能力并不能一两句解释清楚,建议你看看知乎上的这个讨论


    原回答:

    那我每次请求接口的时候都要生成一个全局唯一ID吗?

    可以这么做,但一般可以先生成一定数量的id缓存起来,这样可以减小多方压力。

    请求同一个接口,如果参数什么的一样是不是生成的ID也应该是一样的了?

    一般来说,会加一个时间戳作为额外参数来保证id的唯一性。

    评论 赞赏
      撰写回答

      登录后参与交流、获取后续更新提醒