diff --git a/protocol/grpc/client.go b/protocol/grpc/client.go
index af5ac3ff70f08c4c6f03020c8419a1df6aaf0524..97cd2216db64260c945e27204e7321085a84cefd 100644
--- a/protocol/grpc/client.go
+++ b/protocol/grpc/client.go
@@ -41,11 +41,22 @@ var (
 
 func init() {
 	// load clientconfig from consumer_config
-	// default use grpc
-	defaultClientConfig := GetDefaultClientConfig()
-	clientConf = &defaultClientConfig
 	consumerConfig := config.GetConsumerConfig()
 
+	clientConfig := GetClientConfig()
+	clientConf = &clientConfig
+
+	// check client config and decide whether to use the default config
+	defer func() {
+		if clientConf == nil || len(clientConf.ContentSubType) == 0 {
+			defaultClientConfig := GetDefaultClientConfig()
+			clientConf = &defaultClientConfig
+		}
+		if err := clientConf.Validate(); err != nil {
+			panic(err)
+		}
+	}()
+
 	if consumerConfig.ApplicationConfig == nil {
 		return
 	}
@@ -69,12 +80,6 @@ func init() {
 		}
 	}
 
-	if clientConf == nil || len(clientConf.ContentSubType) == 0 {
-		clientConf = &defaultClientConfig
-	}
-	if err := clientConf.Validate(); err != nil {
-		panic(err)
-	}
 }
 
 // Client return grpc connection and warp service stub