diff --git a/config/config_loader.go b/config/config_loader.go
index 98bd9aae48a4c7566bd77d789cc2127660c1a823..6bf72680acd1dd93a538f70ec5d3970ff9f30f74 100644
--- a/config/config_loader.go
+++ b/config/config_loader.go
@@ -81,32 +81,6 @@ func checkApplicationName(config *ApplicationConfig) {
 // Load Dubbo Init
 func Load() {
 
-	// init other consumer config
-	conConfigType := consumerConfig.ConfigType
-	for key, value := range extension.GetDefaultConfitReader() {
-		if conConfigType == nil {
-			if v, ok := conConfigType[key]; ok {
-				value = v
-			}
-		}
-		if err := extension.GetConfigReaders(value).ReadConsumerConfig(consumerConfig.fileStream); err != nil {
-			logger.Errorf("ReadConsumerConfig error: %#v for %s", perrors.WithStack(err), value)
-		}
-	}
-
-	// init other provider config
-	proConfigType := providerConfig.ConfigType
-	for key, value := range extension.GetDefaultConfitReader() {
-		if proConfigType != nil {
-			if v, ok := proConfigType[key]; ok {
-				value = v
-			}
-		}
-		if err := extension.GetConfigReaders(value).ReadProviderConfig(providerConfig.fileStream); err != nil {
-			logger.Errorf("ReadProviderConfig error: %#v for %s", perrors.WithStack(err), value)
-		}
-	}
-
 	// init router
 	if confRouterFile != "" {
 		if errPro := RouterInit(confRouterFile); errPro != nil {
@@ -118,6 +92,19 @@ func Load() {
 	if consumerConfig == nil {
 		logger.Warnf("consumerConfig is nil!")
 	} else {
+		// init other consumer config
+		conConfigType := consumerConfig.ConfigType
+		for key, value := range extension.GetDefaultConfitReader() {
+			if conConfigType == nil {
+				if v, ok := conConfigType[key]; ok {
+					value = v
+				}
+			}
+			if err := extension.GetConfigReaders(value).ReadConsumerConfig(consumerConfig.fileStream); err != nil {
+				logger.Errorf("ReadConsumerConfig error: %#v for %s", perrors.WithStack(err), value)
+			}
+		}
+
 		metricConfig = consumerConfig.MetricConfig
 		applicationConfig = consumerConfig.ApplicationConfig
 
@@ -178,6 +165,19 @@ func Load() {
 	if providerConfig == nil {
 		logger.Warnf("providerConfig is nil!")
 	} else {
+		// init other provider config
+		proConfigType := providerConfig.ConfigType
+		for key, value := range extension.GetDefaultConfitReader() {
+			if proConfigType != nil {
+				if v, ok := proConfigType[key]; ok {
+					value = v
+				}
+			}
+			if err := extension.GetConfigReaders(value).ReadProviderConfig(providerConfig.fileStream); err != nil {
+				logger.Errorf("ReadProviderConfig error: %#v for %s", perrors.WithStack(err), value)
+			}
+		}
+
 		// so, you should know that the consumer's config will be override
 		metricConfig = providerConfig.MetricConfig
 		applicationConfig = providerConfig.ApplicationConfig