订单请求接口设计,避免timeout超时问题 下单解决

接上篇:外部系统对接下单幂等性校验逻辑及接口超时处理

https://www.cnblogs.com/oktokeep/p/17668039.html

1.第一步
中间表数据 & 取消接口 两件事情分开,不要因为中间表缺失数据,而影响到取消的操作。

2.第二步
中间表数据兼容,不存在的时候才新增,同时兼容存在多条记录的情况 同时兼容多条的记录,按最新的排序取第一条来处理。
测试通过: 下单 》》 订单推送(订单同步到第三方系统) 》》需要流程来测试。 完整流程才可以确保少出错!!! 测试发现下单是成功了,但是订单推送同步因为缺失中间表的数据而异常了。

3.第三步
>>> 结论: redis锁定的时间,需要大于接口超时的时间。目前是10秒 redis
桥接过来的数据,需要等待数据落库。及接口的事务提交完成。
<<<

日志请求链路明细:
13:30:00 订单下单 超时时间,需要分析完整的日志
2023-09-11 09:10:06 2023-09-11 09:09:15.046 请检查姓名和身份证号码是否一致
2023-09-11 09:09:19.921 请检查姓名和身份证号码是否一致 2023-09-11 09:10:05.186
2023-09-11 09:10:14.915 请勿重复提交!
2023-09-11 09:10:20.696 feign.RetryableException: Read timed out executing POST 15秒 接口超时
10秒 redis 2023-09-11 09:10:21.740 新的请求
2023-09-11 09:10:22.255 您在该时间段内已订单,请勿重复下单。 >>> 结论: redis锁定的时间,需要大于接口超时的时间。目前是10秒 redis(简单的理解:锁定的时间包的住接口超时的时间,这样可以避免请求方因为超时而频繁请求。)
桥接过来的数据,需要等待数据落库。及接口的事务提交完成。
<<<
更改调用方  15000  修改成  9000            redis锁定10秒,更改的是调用方的Apollo配置,而不是服务提供方的Apllo配置。( A调用B,更新的是A的配置)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = 9000 ribbon.ReadTimeout = 9000 ribbon.ConnectTimeout = 9000

订单请求接口设计,避免timeout超时问题 下单解决的更多相关文章

  1. MySql数据库 timeout超时报警的解决方法

    今天做查询mysql数据库是,因为数据量大所以报错 最后在 连接的地方做了如下改动: MySqlCommand cmd = new MySqlCommand(procedureName, conn); ...

  2. HTTP请求的python实现(urlopen、headers处理、 Cookie处理、设置Timeout超时、 重定向、Proxy的设置)

    python实现HTTP请求的三中方式:urllib2/urllib.httplib/urllib 以及Requests urllib2/urllib实现 urllib2和urllib是python两 ...

  3. 如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)- 续(附demo)

    上篇文章说到接口安全的设计思路,如果没有看到上篇博客,建议看完再来看这个. 通过园友们的讨论,以及我自己查了些资料,然后对接口安全做一个相对完善的总结,承诺给大家写个demo,今天一并放出. 对于安全 ...

  4. atitit.基于http json api 接口设计 最佳实践 总结o7

    atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...

  5. iOS开发-网络-合理封装请求接口

    概述 如今大多App都会与网络打交道,作为开发者,合理的对网络后台请求接口进行封装十分重要.本文要介绍的就是一种常见的采用回调函数(方法)的网络接口封装,也算的是一种构架吧. 这个构架主要的idea是 ...

  6. App接口设计原则-b

    1.记住密码不是真的让你记住密码,这里仅仅指的是一种自动登录的手段.不管在任何地方,明文存储的密码都是安全隐患,是必须尽量避免的.你可以采用某种方式对用户名.密码以及时间戳(重要)进行签名,再次登录时 ...

  7. timeout超时时长优化和hystrix dashboard可视化分布式系统

    在生产环境中部署一个短路器,一开始需要将一些关键配置设置的大一些,比如timeout超时时长,线程池大小,或信号量容量 然后逐渐优化这些配置,直到在一个生产系统中运作良好 (1)一开始先不要设置tim ...

  8. API接口设计

    1.场景描述 比如说我们要做一款APP,需要通过api接口给app提供数据.假设我们是做商城,比如我们卖书的.我们可以想象下这个APP大概有哪些内容: 1)首页:banner区域(可以是一些热门书籍的 ...

  9. 基于小程序请求接口 wx.request 封装的类 axios 请求

    基于小程序请求接口 wx.request 封装的类 axios 请求 Introduction wx.request 的配置.axios 的调用方式 源码戳我 feature 支持 wx.reques ...

  10. Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)

    Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...

随机推荐

  1. 阿里巴巴云原生 etcd 服务集群管控优化实践

    简介: 这些年,阿里云原生 etcd 服务发生了翻天覆地的变化,这篇文章主要分享一下 etcd 服务在面对业务量大规模增长下遇到的问题以及我们是如何解决的,希望对读者了解 etcd 的使用和管控运维提 ...

  2. Flink 1.12 资源管理新特性回顾

    简介: 介绍 Flink 1.12 资源管理的一些特性,包括内存管理.资源调度.扩展资源框架. 本文由社区志愿者陈政羽整理,Apache Flink Committer.阿里巴巴技术专家宋辛童,Apa ...

  3. KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点

    ​简介: 10 月 16 日上海,OAM/KubeVela.OpenKruise.OCM 三大开源项目的社区负责人.核心贡献者和企业用户将齐聚 KubeMeet,和现场 100 名开发者聊聊新的技术环 ...

  4. [FE] Quasar BEX 不同位置类型的 debug 调试方式

    科普:[FE] Quasar BEX 所有位置类型 types 不同类型调试,查看错误在不同的位置,如下图中的 4 个位置. Refer:https://quasar.dev/quasar-cli/d ...

  5. [FAQ] swagger-php @OA\JsonContent 与 @MediaType @OA\Schema 的用法

    @OA\JsonContent 是对 @MediaType @OA\Schema 两者的封装,类似于 laravel 中 JsonResponse 对 Response 的封装. @OA\JsonCo ...

  6. [Go] gorm 返回指定模型数据的处理方式

    重新 var 声明一个变量,类型为包含指定字段的结构体. 查询的时候,还是使用原始模型类型的变量. example: // For return data var retMember struct { ...

  7. 18.基于Consul的服务发现和ConsulManager管理

    192.168.10.14 prometheus.consul 192.168.10.100 各类服务 一.基于Consul的服务发现 Consul 是由 HashiCorp 开发的一个支持多数据中心 ...

  8. 鸿蒙HarmonyOS实战-ArkUI事件(键鼠事件)

    前言 键鼠事件是指在计算机操作中,用户通过键盘和鼠标来与计算机进行交互的行为.常见的键鼠事件包括按下键盘上的键.移动鼠标.点击鼠标左键或右键等等.键鼠事件可以触发许多不同的操作,比如在文本编辑器中输入 ...

  9. 防抖节流的含义使用场景及js实现原理

    1.防抖:n 秒后在执行该事件,若在 n 秒内被重复触发,则重新计时.代码实现重在清零 clearTimeout. 应用:登录,提交,浏览器窗口的resizes事件,文本编辑保存 <script ...

  10. 一个随时跟新的css库

    1.一个选中阴影的样式 .select border: 1px solid #4d92f7; box-shadow: 0px 0px 15px rgba(0,50,122,.15); 2.一个三栏渐变 ...