<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>超时 on PlumePHP</title><link>https://plumephp.com/tags/%E8%B6%85%E6%97%B6/</link><description>Recent content in 超时 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 11 Apr 2024 14:08:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E8%B6%85%E6%97%B6/index.xml" rel="self" type="application/rss+xml"/><item><title>Go 超时和重试入门：context、退避和幂等性一起看</title><link>https://plumephp.com/go-timeout-retry-backoff-2024/</link><pubDate>Thu, 11 Apr 2024 14:08:00 +0800</pubDate><guid>https://plumephp.com/go-timeout-retry-backoff-2024/</guid><description>&lt;p&gt;写后端服务时，外部调用失败是常态。网络会抖，依赖会慢，网关会返回 502，数据库也可能短暂不可用。初学者最容易写出两种极端代码：一种完全不重试，偶发错误直接暴露给用户；另一种无脑重试很多次，把一个小抖动放大成更大的压力。正确做法不是“永远重试”或“永不重试”，而是把超时、退避和幂等性一起考虑。&lt;/p&gt;</description></item><item><title>Go HTTP 服务超时入门：ReadTimeout、WriteTimeout 和请求上下文</title><link>https://plumephp.com/go-http-server-timeouts-2023/</link><pubDate>Fri, 27 Jan 2023 10:16:00 +0800</pubDate><guid>https://plumephp.com/go-http-server-timeouts-2023/</guid><description>&lt;h2 id="没有超时的服务很容易被慢请求拖住"&gt;没有超时的服务很容易被慢请求拖住&lt;/h2&gt;
&lt;p&gt;很多 Go 入门 HTTP 服务都是这样启动的：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Fatal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ListenAndServe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;:8080&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mux&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这段代码能跑，但它没有显式配置超时。开发环境里看不出问题，到了真实网络环境就可能遇到慢客户端、半开连接、上传请求迟迟不结束、响应写不出去等情况。一个服务如果没有基本超时保护，就可能被少量异常连接占住资源。&lt;/p&gt;</description></item></channel></rss>