Skip to content
阅读进度

网络超时和重试怎样设计? ​

返回 网络与设备通信 目录

标准回答 ​

区分连接超时、读写超时和整次调用的总时限;重试必须同时受错误类型、操作幂等性、次数和总时间预算限制。网络超时只能说明客户端没及时拿到结果,不能证明服务端没有执行。

机制解释 ​

查询类操作常容易设计为可重试;支付、设备启动动作、固件升级确认等可能产生重复副作用。对这些操作应使用业务请求 ID、幂等键、设备端去重或结果查询。退避加入随机抖动,避免大量客户端同时重试。

延伸追问 ​

PUT 一定安全、POST 一定不能重试吗?HTTP 语义中的幂等性要结合实际接口实现。POST 也可以通过幂等协议安全重试,不能只看方法名。读取超时也不意味着整次调用只允许这么长时间。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。