Apollo 长轮询超时错误

最近线上碰到一个线上的go程序Apollo报错,请求apollo的时候超时,记录一下错误的原因。

错误信息

Do Request fail![err:Get https://apollo.merak.xxx.com/notifications/v2?appId=xx.service-xx&cluster=default&notifications=%5B%7B%22namespaceName%22%3A%22default.json%22%2C%22notificationId%22%xx%7D%5D: net/http: request canceled (Client.Timeout exceeded while awaiting headers)], request[], resp[<nil>]

Apollo 长轮询机制

了解了一下,是因为Apollo的长轮询机制导致的。

Apollo portal 更新配置后,进行轮询的客户端获取更新通知,然后再调用接口获取最新配置。不仅仅只有轮询,还有定时更新(默认 5 分钟一次)。目的就是让客户端能够稳定的获取到最新的配置。

根本原因

运维修改了相关服务的请求超时时间

解决办法

将相关服务的超时时间修改,大于Apollo长轮询时间。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容