diff --git a/config/config_loader.go b/config/config_loader.go
index c0084b98c4d4367dcf08cc36b25e2c8906c0e3c4..0000bebc3645be12adb03f087620f50577c5b322 100644
--- a/config/config_loader.go
+++ b/config/config_loader.go
@@ -78,13 +78,6 @@ func checkApplicationName(config *ApplicationConfig) {
 
 // Load Dubbo Init
 func Load() {
-	// init rest config
-	if err := ConsumerRestConfigInit(); err != nil {
-		log.Printf("[initConsumerRestConfig] %#v", err)
-	}
-	if err := ProviderRestConfigInit(); err != nil {
-		log.Printf("[initProviderRestConfig] %#v", err)
-	}
 
 	// init router
 	if confRouterFile != "" {
@@ -97,7 +90,10 @@ func Load() {
 	if consumerConfig == nil {
 		logger.Warnf("consumerConfig is nil!")
 	} else {
-
+		// init rest consumer config
+		if err := ConsumerRestConfigInit(); err != nil {
+			log.Printf("[initConsumerRestConfig] %#v", err)
+		}
 		metricConfig = consumerConfig.MetricConfig
 		applicationConfig = consumerConfig.ApplicationConfig
 
@@ -158,7 +154,10 @@ func Load() {
 	if providerConfig == nil {
 		logger.Warnf("providerConfig is nil!")
 	} else {
-
+		// init rest provider config
+		if err := ProviderRestConfigInit(); err != nil {
+			log.Printf("[initProviderRestConfig] %#v", err)
+		}
 		// so, you should know that the consumer's config will be override
 		metricConfig = providerConfig.MetricConfig
 		applicationConfig = providerConfig.ApplicationConfig