diff --git a/common/constant/key.go b/common/constant/key.go index 50aea81371bfc8b189e80f19a5c17c5d9de7ae51..0515094f285a4bf598b04e2ea1ef376325de7ac1 100644 --- a/common/constant/key.go +++ b/common/constant/key.go @@ -173,6 +173,7 @@ const ( NACOS_NAMESPACE_ID = "namespaceId" NACOS_PASSWORD = "password" NACOS_USERNAME = "username" + NACOS_NOT_LOAD_LOCAL_CACHE = "nacos.not.load.cache" ) const ( diff --git a/registry/nacos/registry.go b/registry/nacos/registry.go index ae2345e6d5c90fcfc5c4dfb5b4da07bcf1b6f43e..de68e74906ecf14330d12bfb0ae42e86648ff9e3 100644 --- a/registry/nacos/registry.go +++ b/registry/nacos/registry.go @@ -274,7 +274,7 @@ func getNacosConfig(url *common.URL) (map[string]interface{}, error) { Port: uint64(port), }) } - configMap["serverConfigs"] = serverConfigs + configMap[nacosConstant.KEY_SERVER_CONFIGS] = serverConfigs var clientConfig nacosConstant.ClientConfig timeout, err := time.ParseDuration(url.GetParam(constant.REGISTRY_TIMEOUT_KEY, constant.DEFAULT_REG_TIMEOUT)) @@ -287,8 +287,16 @@ func getNacosConfig(url *common.URL) (map[string]interface{}, error) { clientConfig.LogDir = url.GetParam(constant.NACOS_LOG_DIR_KEY, "") clientConfig.Endpoint = url.GetParam(constant.NACOS_ENDPOINT, "") clientConfig.NamespaceId = url.GetParam(constant.NACOS_NAMESPACE_ID, "") - clientConfig.NotLoadCacheAtStart = true - configMap["clientConfig"] = clientConfig + + //enable local cache when nacos can not connect. + notLoadCache, err := strconv.ParseBool(url.GetParam(constant.NACOS_NOT_LOAD_LOCAL_CACHE, "false")) + if err != nil { + logger.Errorf("ParseBool - error: %v", err) + notLoadCache = false + } + clientConfig.NotLoadCacheAtStart = notLoadCache + + configMap[nacosConstant.KEY_CLIENT_CONFIG] = clientConfig return configMap, nil } diff --git a/registry/nacos/registry_test.go b/registry/nacos/registry_test.go index a852c00b14ac82ffc64206d6880c9f0e9af7aff6..b82820577144dfe98492165372a925500c20abfb 100644 --- a/registry/nacos/registry_test.go +++ b/registry/nacos/registry_test.go @@ -40,7 +40,11 @@ func TestNacosRegistry_Register(t *testing.T) { if !checkNacosServerAlive() { return } - regurl, _ := common.NewURL("registry://console.nacos.io:80", common.WithParamsValue(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER))) + regurlMap := url.Values{} + regurlMap.Set(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)) + regurlMap.Set(constant.NACOS_NOT_LOAD_LOCAL_CACHE, "true") + regurl, _ := common.NewURL("registry://console.nacos.io:80", common.WithParams(regurlMap)) + urlMap := url.Values{} urlMap.Set(constant.GROUP_KEY, "guangzhou-idc") urlMap.Set(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)) @@ -72,7 +76,11 @@ func TestNacosRegistry_Subscribe(t *testing.T) { if !checkNacosServerAlive() { return } - regurl, _ := common.NewURL("registry://console.nacos.io:80", common.WithParamsValue(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER))) + regurlMap := url.Values{} + regurlMap.Set(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)) + regurlMap.Set(constant.NACOS_NOT_LOAD_LOCAL_CACHE, "true") + regurl, _ := common.NewURL("registry://console.nacos.io:80", common.WithParams(regurlMap)) + urlMap := url.Values{} urlMap.Set(constant.GROUP_KEY, "guangzhou-idc") urlMap.Set(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)) @@ -113,7 +121,11 @@ func TestNacosRegistry_Subscribe_del(t *testing.T) { if !checkNacosServerAlive() { return } - regurl, _ := common.NewURL("registry://console.nacos.io:80", common.WithParamsValue(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER))) + regurlMap := url.Values{} + regurlMap.Set(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)) + regurlMap.Set(constant.NACOS_NOT_LOAD_LOCAL_CACHE, "true") + regurl, _ := common.NewURL("registry://console.nacos.io:80", common.WithParams(regurlMap)) + urlMap := url.Values{} urlMap.Set(constant.GROUP_KEY, "guangzhou-idc") urlMap.Set(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)) @@ -181,7 +193,11 @@ func TestNacosRegistry_Subscribe_del(t *testing.T) { } func TestNacosListener_Close(t *testing.T) { - regurl, _ := common.NewURL("registry://console.nacos.io:80", common.WithParamsValue(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER))) + regurlMap := url.Values{} + regurlMap.Set(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)) + regurlMap.Set(constant.NACOS_NOT_LOAD_LOCAL_CACHE, "true") + regurl, _ := common.NewURL("registry://console.nacos.io:80", common.WithParams(regurlMap)) + urlMap := url.Values{} urlMap.Set(constant.GROUP_KEY, "guangzhou-idc") urlMap.Set(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER))