-
-
Notifications
You must be signed in to change notification settings - Fork 194
Closed
Labels
Description
请简单描述bug的场景
config 设置 IP 为 ConfigService 集群中其中一个节点的 IP;停止该节点 ConfigService 后,SDK 负载均衡不会切换到其他节点。
如何重现
func TestRun(t *testing.T) {
var ch = make(chan int, 0)
_, err := StartWithConfig(func() (*config.AppConfig, error) {
return &config.AppConfig{
AppID: "test-app",
Cluster: "default",
NamespaceName: "application",
IP: "http://IP1",
Secret: "xxx",
}, nil
})
if err != nil {
panic(err)
}
<-ch
}
再现行为的步骤:
- IP1 节点停止 ConfigService
期望
负载均衡切换到其他节点
其他上下文
RequestRecovery 里判断 host == appConfig.GetHost()
直接返回了,SetDownNode 里的 s.nextTryConnTime = nextTryConnectPeriod
应该不会生效,导致 IsConnectDirectly
永远返回 false,loadBalance
方法一直使用 appConfig 里的配置,而不是通过 services/config
获取的节点列表。
server.SetDownNode(host, appConfig.GetHost())
,这里参数传递是否写反了,SetDownNode
里使用第一个参数去获取 Server 列表,所以我理解第一个参数应该传入 appConfig.GetHost()
才对