diff --git a/client/protocol.go b/client/protocol.go
index 4588c1e..50f30ef 100644
--- a/client/protocol.go
+++ b/client/protocol.go
@@ -26,7 +26,7 @@
 type TSCompressionType uint8
 
 const (
-	UNKNOW  TSDataType = -1
+	UNKNOWN TSDataType = -1
 	BOOLEAN TSDataType = 0
 	INT32   TSDataType = 1
 	INT64   TSDataType = 2
diff --git a/client/rpcdataset.go b/client/rpcdataset.go
index 631afaa..a9a4483 100644
--- a/client/rpcdataset.go
+++ b/client/rpcdataset.go
@@ -79,7 +79,7 @@
 
 func (s *IoTDBRpcDataSet) getColumnType(columnName string) TSDataType {
 	if s.closed {
-		return UNKNOW
+		return UNKNOWN
 	}
 	return s.columnTypeDeduplicatedList[s.getColumnIndex(columnName)]
 }
diff --git a/client/rpcdataset_test.go b/client/rpcdataset_test.go
index 43cd0ba..53070f4 100644
--- a/client/rpcdataset_test.go
+++ b/client/rpcdataset_test.go
@@ -76,7 +76,7 @@
 			args: args{
 				columnName: "root.ln.device1.tick_count",
 			},
-			want: UNKNOW,
+			want: UNKNOWN,
 		},
 	}
 	for _, tt := range tests {
diff --git a/client/session.go b/client/session.go
index 36c6d1c..c2a29e7 100644
--- a/client/session.go
+++ b/client/session.go
@@ -38,19 +38,21 @@
 )
 
 const (
-	DefaultTimeZone  = "Asia/Shanghai"
-	DefaultFetchSize = 1024
+	DefaultTimeZone        = "Asia/Shanghai"
+	DefaultFetchSize       = 1024
+	DefaultConnectRetryMax = 3
 )
 
 var errLength = errors.New("deviceIds, times, measurementsList and valuesList's size should be equal")
 
 type Config struct {
-	Host      string
-	Port      string
-	UserName  string
-	Password  string
-	FetchSize int32
-	TimeZone  string
+	Host            string
+	Port            string
+	UserName        string
+	Password        string
+	FetchSize       int32
+	TimeZone        string
+	ConnectRetryMax int
 }
 
 type Session struct {
@@ -75,6 +77,9 @@
 	if s.config.TimeZone == "" {
 		s.config.TimeZone = DefaultTimeZone
 	}
+	if s.config.ConnectRetryMax <= 0 {
+		s.config.ConnectRetryMax = DefaultConnectRetryMax
+	}
 
 	var protocolFactory thrift.TProtocolFactory
 	var err error
@@ -135,6 +140,9 @@
 	if s.config.TimeZone == "" {
 		s.config.TimeZone = DefaultTimeZone
 	}
+	if s.config.ConnectRetryMax <= 0 {
+		s.config.ConnectRetryMax = DefaultConnectRetryMax
+	}
 
 	var protocolFactory thrift.TProtocolFactory
 	var err error
@@ -1022,6 +1030,9 @@
 	if s.config.TimeZone == "" {
 		s.config.TimeZone = DefaultTimeZone
 	}
+	if s.config.ConnectRetryMax <= 0 {
+		s.config.ConnectRetryMax = DefaultConnectRetryMax
+	}
 
 	protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
 	iprot := protocolFactory.GetProtocol(s.trans)
@@ -1056,7 +1067,7 @@
 	var err error
 	var connectedSuccess = false
 
-	for i := 0; i < 3; i++ {
+	for i := 0; i < s.config.ConnectRetryMax; i++ {
 		for e := endPointList.Front(); e != nil; e = e.Next() {
 			err = s.initClusterConn(e.Value.(endPoint))
 			if err == nil {
