MSE微服务引擎nacos-go,客户端,这个100Ms的作用是什么呢?
if err != nil {
logger.Warnf("send connectionSetupRequest error:%v", err)
time.Sleep(100 * timeMillisecond)
return err
}
如果发送请求时出现错误,这段代码会记录一个警告日志,然后使当前线程暂停100毫秒(可能是为了重试或其他操作),最后返回这个错误。
time.Sleep(100 * time.Millisecond),它的作用是暂停当前goroutine的执行100毫秒。这段时间内,当前goroutine将不会继续执行任何代码,而是将控制权让给其他goroutine或等待指定的时间。
代码中,time.Sleep(100 * time.Millisecond)
这一行代码的作用是让程序暂停 100 毫秒。这里的 100Ms 是一个延迟,它可以让程序在发送连接设置请求后,暂停一段时间,然后再继续执行后续的代码。
这个延迟可以用于处理一些网络抖动或者异常情况,比如当网络连接不稳定或者服务器响应缓慢时,程序可以暂停一段时间,等待网络连接恢复或者服务器响应完成,然后再继续执行后续的代码
在MSE微服务引擎nacos-go客户端中,这个100(Mstime.Sleep(100 time.Millisecond) return err)的作用是控制重试机制。当客户端发送请求时,如果出现错误,客户端会等待一段时间后再次尝试发送请求,以避免频繁的重试导致服务器负载过大。这个100(Mstime.Sleep(100 time.Millisecond) return err)就是用来控制等待时间的。如果客户端在重试期间仍然无法发送请求,它将返回错误。
这个客户端在社区维护的,如果遇到问题可以开issue。
看起来是建连接的等待,防止拒绝连接异常导致无等待的重试把cpu吃满。此回答整理自钉群“MSE微服务引擎用户交流群(答疑查看群公告底部指引)”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。