回调数据丢了?

问题是这样,我们对接某一个大平台,在平台上配置了我们的回调地址。最近几个月大概1个月一次,发现会有些回调没有收到。有次数据丢失的时间是和他们官网大版本更新发布的时间点吻合的。但是发布内容并没有和这个回调有直接的相关性。

会是平台的问题吗?从自身上还有没有别的突破口呢?

我们作为应用程序,上层用的是nginx代理。有个参数起到了至关重要的作用:proxy_ignore_client_abort

proxy_ignore_client_abort 是 Nginx 的一个指令,用于控制 Nginx 在客户端连接意外关闭时的行为。默认情况下,当客户端在请求过程中突然断开连接,Nginx 会立即终止与后端服务器的连接,这可能会导致后端服务器的资源浪费,尤其是在处理一些需要长时间处理的请求时。

通过设置 proxy_ignore_client_abort on;,Nginx 将忽略客户端的断开行为,继续将请求发送到后端服务器,直到后端服务器处理完成。这样,即使客户端断开连接,后端服务器也能继续完成请求处理。

之前我们使用默认配置,这会造成客户端也就是我们对接的平台意外关闭时,回调请求没有发到我们应用端。对于这种回调类型的请求,更合理的设置方式是设置 proxy_ignore_client_abort on;

而默认方式更适合那种客户端请求要拿到处理结果,如果客户端不拿到处理结果没有意义的,比如:支付、下单、自己作为客户端请求下游,但是并不是适合这种回调请求。

相关推荐
BreezeJiang几秒前
父组件一更新,子组件就必须跟着更新吗?从 memo 走到 useCallback
前端·javascript
胡萝卜术几秒前
复用与并行:从自定义 Hooks 封装状态逻辑,到 Web Worker 的多线程计算
前端·javascript·面试
circuitsosk1 分钟前
长文本与高并发下的Token“瘦身”策略:Prompt压缩与上下文窗口优化
java·前端·python·prompt·上下文窗口·token优化
触底反弹1 分钟前
🏗️ 写完 Todos 之后,大型 React 项目的 7 个架构真相
前端·react.js·前端框架
huabuyu2 分钟前
CLS 总是修不好?因为你只盯着分数,从没拆开看过它
前端·javascript
AI创界者2 分钟前
【网络安全运维】Kali Linux 下 Medusa(美杜莎)工具的高效部署、故障排查与安全测试实战
linux·运维·web安全
倾颜3 分钟前
会 Vue / React,上手 Electron 真没那么难:前端开发者需要补齐的核心知识
前端
kisshyshy3 分钟前
从多页面到SPA:React Router 路由进阶完全指南
前端·javascript·react.js
JakeJiang4 分钟前
抓到接口还不够:用 AIProxy 改返回、Mock 数据、切测试环境
前端·后端
倾颜6 分钟前
从 Web 到桌面:AI Mind Electron Desktop Host 的安全边界设计
前端