业务优化
【刊登】更新商品接口承载更多业务功能
本文档使用 MrDoc 发布
-
+
首页
【刊登】更新商品接口承载更多业务功能
刊登业务在更新商品接口时希望能承载更多的业务功能,比如,同时支持更新商品库存,更新商品价格等,但是对于平台而言需要调用多个接口才能实现。 # 方案一 【业务分接口单独调用】[目前使用] 对于更新商品,更新库存,更新价格,更新子商品库存,更新子商品价格等调度中心都是单独开放接口。  ### 优点 > 1、开发简单、各功能不耦合、维护方便 ### 缺点 > 1、调度中心对接方完成用户的修改多个数据需要调用多次接口,页面等待时间过长,用户体验差 ------------ # 方案二【通过唯一标识对单个接口承载多业务实现接口幂等】 对于更新商品,更新库存,更新价格,更新子商品库存,更新子商品价格等多个业务事件合并提交给一个调度中心接口,调度中心对接方使用一个标识 KEY 绑定该次业务事件,当调用超时使用相同的 KEY 重复调用可以响应相同的结果,本意为调度中心通过识别标识 KEY 做接口幂等。 _1666508857.jpg) ### 优点 > 1、调度中心对接方只需调用一个接口便可以实现多业务事件的提交。 ### 缺点 > 1、一段时间内调用方不能使用相同的 KEY 提交不同的数据(调度中心将拒绝)。 > 2、调用方一次调用超时时需要持续使用相同的 KEY 和数据调用相同接口获取处理结果(伪异步),极端情况可能需要重复调用多次获取结果(且存在处理中的中间状态)。 ------------ # 方案三 [多线程处理] 对于更新商品,更新库存,更新价格,更新子商品库存,更新子商品价格等多个业务事件合并提交给一个调度中心接口,调度中心使用多个线程提交多个业务给平台。 _1666510397.jpg) ### 优点 > 1、调度中心对接方只需调用一个接口便可以实现多业务事件的提交。 > 2、能更快响应结果,不需要伪异步和中间态。 ### 缺点 > 1、造成更多内存和 CPU 占用(需要更多的服务器资源) > 2、极端情况调度中心调用方调用超时将造成超时或结果丢失(无幂等)。 ------------ # 方案四 [唯一标识 + 多线程处理] 该方案是方案二和方案三的合并和优化,对于更新商品,更新库存,更新价格,更新子商品库存,更新子商品价格等多个业务事件合并提交给一个调度中心接口,调度中心对调用的 店铺+入参 加密生成唯一标识,使用 REDIS 在短时间时间内保证接口幂等,且使用多线程提交数据至平台使用多线程提高速度。 _1666511402.jpg) ### 优点 > 1、调度中心对接方只需调用一个接口便可以实现多业务事件的提交。 > 2、调度中心生成唯一标识,降低调用方维护标识的弊端。 > 3、能保证尽量更快响应,当超时时支持一段时间内重复调用获取相同结果(一段时间内保证幂等)。 > 3、避免重复调用时造成多线程资源浪费。 ### 缺点 > 1、造成更多内存和 CPU 占用(需要更多的服务器资源) > 2、极端情况出现处理中的中间状态
chenjunan
2022年10月23日 16:02
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码