cloudzenith / DouTok

始于字节跳动青训营后端项目抖声 但不止于极简版抖音
GNU General Public License v3.0
83 stars 27 forks source link

etcd component init IsHealth check Get operation context set timeout #86

Closed dxinli closed 15 hours ago

dxinli commented 3 days ago

Link to an issue

related issue #82

What

etcd config 添加了 timeout 配置, IsHealth 方法在 Get health key 的 context 添加对应的超时设置

How

etcd config 添加属性以及方法,如果配置无效,则方法会返回默认值 3s,在IsHealth客户端调用前获取config,并调用其方法获取 timeout 配置,并最后根据 timeout 创建 context,传入 Get

Screenshots

How to test

config.yaml 添加对应的 timeout 配置,并停止 etcd 服务,程序将出现超时

Checklist

codecov[bot] commented 2 days ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:


🚨 Try these New Features:

TremblingV5 commented 2 days ago

我看到了你在#82那个issue下的回复。抱歉回复有些晚了。

我认为此处没有必要去为每一套配置加一个超时时间,这个超时时间看起来只会在启动时的健康检查去使用。如果只有健康检查在使用,那么一个写死的值就可以了。当一个服务依赖etcd,服务启动时etcd在写死的时间内都没有响应,那么认为这个服务异常,启动失败都是可以的。

如果想加一个配置项,可以在更高的维度去加,例如在整个app配置中,增加一个healthCheckTimeout这样的字段(名字我随便起的),在服务启动时进行健康检查时使用这个配置项作为超时时间即可

dxinli commented 2 days ago

好的,我也认为没必要在每套配置中提供这么一个配置值,在APP中添加的话,从目前的需求来说感觉还没必要,那就直接写死吧,如果后续出现更多各服务需要相关的配置的话,在做调整

dxinli commented 2 days ago

我已经删除了 etcd 的 Config 的timeout配置,并将超时设置为常量3s