幂等性设计
为什么接口需要幂等呢?
-
创建订单时,需要减库存,如果减库存接口超时了,调用方重新调用一次(无论是否成功的执行了减库存代码),应该要保证不会多减一次库存。
-
接口提供方需要提供相应的查询接口。调用方在超时后去查询一下是否成功。是否多扣一次库存掌握在调用方手里。如果接口是提供给第三方使用的,就会存在一定的风险。 -
接口支持幂等。这样幂等的保证完全掌握在提供方自己手里,完全不用担心。
全局ID
1.可以创建一个分配中心,由中心统一分配。
2.集成在业务服务集群。
-
递增,起码保证每台机器上的ID递增。(保证数据库性能) -
明确的规则,ID的各个位都有具体的定义。(方便追溯)
UUID
Snowflake

-
1bit:固定为0,二进制中最高位为符号位,0为整数,1位负数。所以固定为0表示生成的ID都为正数 -
41bit:作为毫秒数,大约能用69年。 -
10bit:作为机器编号(5bit是数据中心ID,5bit为机器ID)。支持1204个实例。 -
12bit:序列号,一毫秒最多生成2^12=4096个。
业务逻辑

HTTP的幂等性

小结
感谢阅读,希望对你有所帮助 :)
来源:blog.csdn.net/qq_36011946/article/details/104200262
END
题外推荐
十期推荐
【291期】你了解Log4j2中RollingFile的文件滚动更新机制吗? 【292期】Linux面试最高频的5个基本问题 【293期】面试官:你知道写时复制(Copy-On-Write)在Java中是如何被应用的吗? 【294期】面试官:谈谈你对缓存的使用和理解 【295期】面试官:已经用k8s来部署运维各个微服务的组件,是否可以不用整套微服务? 【296期】面试官:详细说说对MQ消息队列的理解以及主流MQ的优缺点 【297期】面试官:为什么在new 对象里面使用自动注入对象会报空指针异常? 【298期】面试官:如何保证token的安全 【299期】面试官:详细说一说MySQL InnoDB 中意向锁的作用 【300期】面试官:Elasticsearch 是如何做到快速检索的 与其在网上拼命找题? 不如马上关注我们~
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/8385.html