diff --git a/config/config_loader_test.go b/config/config_loader_test.go
index 169f3e744885b3909e68b61a190491ff79187da8..6e9689c76322686fff0fab585dc08436a07cd55c 100644
--- a/config/config_loader_test.go
+++ b/config/config_loader_test.go
@@ -86,8 +86,8 @@ func TestLoad(t *testing.T) {
 func TestWithNoRegLoad(t *testing.T) {
 	doInit()
 	doinit()
-	providerConfig.Services["MockService"].Registries = []string{}
-	consumerConfig.References["MockService"].Registries = []string{}
+	providerConfig.Services["MockService"].Registry = ""
+	consumerConfig.References["MockService"].Registry = ""
 	ms := &MockService{}
 	SetConsumerService(ms)
 	SetProviderService(ms)
diff --git a/config/reference_config.go b/config/reference_config.go
index d56226a311a821e6efbef892dca0e0bd872353b7..2c38d8aa4aa31576c94724d4537aa752df2fb96c 100644
--- a/config/reference_config.go
+++ b/config/reference_config.go
@@ -43,7 +43,7 @@ type ReferenceConfig struct {
 	Url           string          `yaml:"url"  json:"url,omitempty" property:"url"`
 	Filter        string          `yaml:"filter" json:"filter,omitempty" property:"filter"`
 	Protocol      string          `yaml:"protocol"  json:"protocol,omitempty" property:"protocol"`
-	Registries    []string        `yaml:"registries"  json:"registries,omitempty"  property:"registries"`
+	Registry      string          `yaml:"registry"  json:"registry,omitempty"  property:"registry"`
 	Cluster       string          `yaml:"cluster"  json:"cluster,omitempty" property:"cluster"`
 	Loadbalance   string          `yaml:"loadbalance"  json:"loadbalance,omitempty" property:"loadbalance"`
 	Retries       int64           `yaml:"retries"  json:"retries,omitempty" property:"retries"`
@@ -100,7 +100,7 @@ func (refconfig *ReferenceConfig) Refer() {
 		}
 	} else {
 		//2. assemble SubURL from register center's configuration妯″紡
-		refconfig.urls = loadRegistries(refconfig.Registries, consumerConfig.Registries, common.CONSUMER)
+		refconfig.urls = loadRegistries(refconfig.Registry, consumerConfig.Registries, common.CONSUMER)
 
 		//set url to regUrls
 		for _, regUrl := range refconfig.urls {
diff --git a/config/reference_config_test.go b/config/reference_config_test.go
index 766cfda6cf1044d5249ad7e742cab63e6343bf4f..c41e2a16de1cdc347d204cfae9d36b0b54f12808 100644
--- a/config/reference_config_test.go
+++ b/config/reference_config_test.go
@@ -80,7 +80,7 @@ func doInit() {
 		},
 		References: map[string]*ReferenceConfig{
 			"MockService": {
-				Registries:    []string{"shanghai_reg1", "shanghai_reg2", "hangzhou_reg1", "hangzhou_reg2"},
+				Registry:      "shanghai_reg1,shanghai_reg2,hangzhou_reg1,hangzhou_reg2",
 				InterfaceName: "MockService",
 				Protocol:      "mock",
 				Cluster:       "failover",
diff --git a/config/registry_config.go b/config/registry_config.go
index a36e8c15992b1fc57ddf12857bae89fbcd990ce1..816d93cf9412883bb2042ede7286b4e9a434e641 100644
--- a/config/registry_config.go
+++ b/config/registry_config.go
@@ -21,6 +21,7 @@ import (
 	"context"
 	"net/url"
 	"strconv"
+	"strings"
 )
 
 import (
@@ -44,17 +45,20 @@ func (*RegistryConfig) Prefix() string {
 	return constant.RegistryConfigPrefix
 }
 
-func loadRegistries(targetRegistries []string, registries map[string]*RegistryConfig, roleType common.RoleType) []*common.URL {
+func loadRegistries(targetRegistries string, registries map[string]*RegistryConfig, roleType common.RoleType) []*common.URL {
 	var urls []*common.URL
+	trSlice := strings.Split(targetRegistries, ",")
+
 	for k, registryConf := range registries {
 		target := false
 
 		// if user not config targetRegistries,default load all
-		if len(targetRegistries) == 0 {
+		// Notice:If s does not contain sep and sep is not empty, SplitAfter returns a slice of length 1 whose only element is s.
+		if len(trSlice) == 0 || (len(trSlice) == 1 && trSlice[0] == "") {
 			target = true
 		} else {
 			// else if user config targetRegistries
-			for _, tr := range targetRegistries {
+			for _, tr := range trSlice {
 				if tr == k {
 					target = true
 					break
diff --git a/config/service_config.go b/config/service_config.go
index e5c077975bea1ed80828242fe89fbacea8760f95..79a29aa33058dfc47fca282a71ba28292a2b1ff3 100644
--- a/config/service_config.go
+++ b/config/service_config.go
@@ -46,7 +46,7 @@ type ServiceConfig struct {
 	Filter        string          `yaml:"filter" json:"filter,omitempty" property:"filter"`
 	Protocol      string          `required:"true"  yaml:"protocol"  json:"protocol,omitempty" property:"protocol"` //multi protocol support, split by ','
 	InterfaceName string          `required:"true"  yaml:"interface"  json:"interface,omitempty" property:"interface"`
-	Registries    []string        `yaml:"registries"  json:"registries,omitempty"  property:"registries"`
+	Registry      string          `yaml:"registry"  json:"registry,omitempty"  property:"registry"`
 	Cluster       string          `default:"failover" yaml:"cluster"  json:"cluster,omitempty" property:"cluster"`
 	Loadbalance   string          `default:"random" yaml:"loadbalance"  json:"loadbalance,omitempty"  property:"loadbalance"`
 	Group         string          `yaml:"group"  json:"group,omitempty" property:"group"`
@@ -88,7 +88,7 @@ func (srvconfig *ServiceConfig) Export() error {
 		return nil
 	}
 
-	regUrls := loadRegistries(srvconfig.Registries, providerConfig.Registries, common.PROVIDER)
+	regUrls := loadRegistries(srvconfig.Registry, providerConfig.Registries, common.PROVIDER)
 	urlMap := srvconfig.getUrlMap()
 
 	for _, proto := range loadProtocol(srvconfig.Protocol, providerConfig.Protocols) {
diff --git a/config/service_config_test.go b/config/service_config_test.go
index df1c4be90141d6a8448220b8b5547735bb78701a..4e0b7f95d6b156eeda021e3c02e5457e8b52b244 100644
--- a/config/service_config_test.go
+++ b/config/service_config_test.go
@@ -76,7 +76,7 @@ func doinit() {
 			"MockService": {
 				InterfaceName: "MockService",
 				Protocol:      "mock",
-				Registries:    []string{"shanghai_reg1", "shanghai_reg2", "hangzhou_reg1", "hangzhou_reg2"},
+				Registry:      "shanghai_reg1,shanghai_reg2,hangzhou_reg1,hangzhou_reg2",
 				Cluster:       "failover",
 				Loadbalance:   "random",
 				Retries:       3,