diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml
index 48a3feba4b29e9de039cbf73b4ab76f7e1d6ac30..64672af5ab6d045a6f26633079a1dce55d36432d 100644
--- a/.github/workflows/github-actions.yml
+++ b/.github/workflows/github-actions.yml
@@ -53,7 +53,13 @@ jobs:
         else
             go get -v -t -d ./...
         fi
-        
+
+    - name: Install go ci lint
+      run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.27.0
+
+    - name: Run Linter
+      run: golangci-lint run --timeout=10m -v
+
     - name: Verify
       run: |
         make verify
@@ -61,12 +67,6 @@ jobs:
     - name: Integrate Test
       run: |
         chmod +x integrate_test.sh && ./integrate_test.sh
-        
-    - name: Install go ci lint
-      run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.27.0
-
-    - name: Run Linter
-      run: golangci-lint run --timeout=10m -v
 
     - name: Post Coverage
       run: bash <(curl -s https://codecov.io/bash)
diff --git a/cluster/router/chain/chain_test.go b/cluster/router/chain/chain_test.go
index a2b5642b806c7179017be0dd9c0bccc6123ba48c..1bb7124a4f877a0ca65a3a683da97a44168e0275 100644
--- a/cluster/router/chain/chain_test.go
+++ b/cluster/router/chain/chain_test.go
@@ -131,7 +131,7 @@ conditions:
 	_, err = z.Conn.Set(path, []byte(testyml), 0)
 	assert.NoError(t, err)
 	defer func() {
-		err := ts.Stop()
+		_ = ts.Stop()
 		assert.NoError(t, err)
 		z.Close()
 	}()
@@ -209,7 +209,7 @@ conditions:
 	_, err = z.Conn.Set(path, []byte(testyml), 0)
 	assert.NoError(t, err)
 	defer func() {
-		err := ts.Stop()
+		_ = ts.Stop()
 		assert.NoError(t, err)
 		z.Close()
 	}()
@@ -240,7 +240,7 @@ func TestRouterChainRouteNoRoute(t *testing.T) {
 	ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
 	assert.Nil(t, err)
 	defer func() {
-		err := ts.Stop()
+		_ = ts.Stop()
 		assert.NoError(t, err)
 		z.Close()
 	}()
diff --git a/common/rpc_service.go b/common/rpc_service.go
index 9f587f3a689f8a8d6b257799233c0c7b6dc3a4ac..30d72c1420f254182f5d2f16c6fc9444881f0b71 100644
--- a/common/rpc_service.go
+++ b/common/rpc_service.go
@@ -106,10 +106,10 @@ func (m *MethodType) ReplyType() reflect.Type {
 	return m.replyType
 }
 
-// SuiteContext tranfers @ctx to reflect.Value type or get it from @m.ctxType.
+// SuiteContext transfers @ctx to reflect.Value type or get it from @m.ctxType.
 func (m *MethodType) SuiteContext(ctx context.Context) reflect.Value {
-	if contextv := reflect.ValueOf(ctx); contextv.IsValid() {
-		return contextv
+	if ctxV := reflect.ValueOf(ctx); ctxV.IsValid() {
+		return ctxV
 	}
 	return reflect.Zero(m.ctxType)
 }
diff --git a/config/config_loader_test.go b/config/config_loader_test.go
index ef76bc090877281d2e12b48378476b4042b55943..f2290548cefe1cc599e298a66595bb007c3f8ae7 100644
--- a/config/config_loader_test.go
+++ b/config/config_loader_test.go
@@ -104,7 +104,8 @@ func TestLoad(t *testing.T) {
 
 	conServices = map[string]common.RPCService{}
 	proServices = map[string]common.RPCService{}
-	err := common.ServiceMap.UnRegister("com.MockService", "mock", common.ServiceKey("com.MockService", "huadong_idc", "1.0.0"))
+	err := common.ServiceMap.UnRegister("com.MockService", "mock",
+		common.ServiceKey("com.MockService", "huadong_idc", "1.0.0"))
 	assert.Nil(t, err)
 	consumerConfig = nil
 	providerConfig = nil
@@ -143,7 +144,8 @@ func TestLoadWithSingleReg(t *testing.T) {
 
 	conServices = map[string]common.RPCService{}
 	proServices = map[string]common.RPCService{}
-	err := common.ServiceMap.UnRegister("com.MockService", "mock", common.ServiceKey("com.MockService", "huadong_idc", "1.0.0"))
+	err := common.ServiceMap.UnRegister("com.MockService", "mock",
+		common.ServiceKey("com.MockService", "huadong_idc", "1.0.0"))
 	assert.Nil(t, err)
 	consumerConfig = nil
 	providerConfig = nil
@@ -183,7 +185,8 @@ func TestWithNoRegLoad(t *testing.T) {
 
 	conServices = map[string]common.RPCService{}
 	proServices = map[string]common.RPCService{}
-	err := common.ServiceMap.UnRegister("com.MockService", "mock", common.ServiceKey("com.MockService", "huadong_idc", "1.0.0"))
+	err := common.ServiceMap.UnRegister("com.MockService", "mock",
+		common.ServiceKey("com.MockService", "huadong_idc", "1.0.0"))
 	assert.Nil(t, err)
 	consumerConfig = nil
 	providerConfig = nil
diff --git a/config/service_config.go b/config/service_config.go
index 8bc1b91ee5cd35b423039ef7e2442df7d2a103f1..fd49390aa2b15938a8a4aa321d47ceafef4d9be9 100644
--- a/config/service_config.go
+++ b/config/service_config.go
@@ -176,7 +176,8 @@ func (c *ServiceConfig) Export() error {
 		// registry the service reflect
 		methods, err := common.ServiceMap.Register(c.InterfaceName, proto.Name, c.Group, c.Version, c.rpcService)
 		if err != nil {
-			formatErr := perrors.Errorf("The service %v export the protocol %v error! Error message is %v.", c.InterfaceName, proto.Name, err.Error())
+			formatErr := perrors.Errorf("The service %v export the protocol %v error! Error message is %v.",
+				c.InterfaceName, proto.Name, err.Error())
 			logger.Errorf(formatErr.Error())
 			return formatErr
 		}
diff --git a/config_center/apollo/impl.go b/config_center/apollo/impl.go
index cb0f03d54a2ea180543ec528e3a46be45067179c..5b74f5e15013c07de000cc18cab98238b96ac060 100644
--- a/config_center/apollo/impl.go
+++ b/config_center/apollo/impl.go
@@ -146,8 +146,8 @@ func (c *apolloConfiguration) getAddressWithProtocolPrefix(url *common.URL) stri
 	address := url.Location
 	converted := address
 	if len(address) != 0 {
-		address := regexp.MustCompile(`\s+`).ReplaceAllString(address, "")
-		parts := strings.Split(address, ",")
+		addr := regexp.MustCompile(`\s+`).ReplaceAllString(address, "")
+		parts := strings.Split(addr, ",")
 		addrs := make([]string, 0)
 		for _, part := range parts {
 			addr := part
diff --git a/protocol/dubbo/dubbo_codec.go b/protocol/dubbo/dubbo_codec.go
index f92da4aa7f164fce131f9f869f9550b6e7168943..21376c3145d7d620d7fc12f2bc67efcd65faee4b 100644
--- a/protocol/dubbo/dubbo_codec.go
+++ b/protocol/dubbo/dubbo_codec.go
@@ -105,7 +105,7 @@ func (c *DubboCodec) EncodeRequest(request *remoting.Request) (*bytes.Buffer, er
 	return pkg.Marshal()
 }
 
-// encode heartbeart request
+// encode heartbeat request
 func (c *DubboCodec) encodeHeartbeartReqeust(request *remoting.Request) (*bytes.Buffer, error) {
 	header := impl.DubboHeader{
 		Type:     impl.PackageHeartbeat,
diff --git a/protocol/dubbo/hessian2/hessian_dubbo.go b/protocol/dubbo/hessian2/hessian_dubbo.go
index 55a824a2a44c98fdff4ef9148759531e1cf4705c..5ffebde54b951997057a1f161dbcf6aae1d4a7fd 100644
--- a/protocol/dubbo/hessian2/hessian_dubbo.go
+++ b/protocol/dubbo/hessian2/hessian_dubbo.go
@@ -190,9 +190,9 @@ func (h *HessianCodec) ReadBody(rspObj interface{}) error {
 	switch h.pkgType & PackageType_BitSize {
 	case PackageResponse | PackageHeartbeat | PackageResponse_Exception, PackageResponse | PackageResponse_Exception:
 		decoder := hessian.NewDecoder(buf[:])
-		exception, err := decoder.Decode()
-		if err != nil {
-			return perrors.WithStack(err)
+		exception, exceptionErr := decoder.Decode()
+		if exceptionErr != nil {
+			return perrors.WithStack(exceptionErr)
 		}
 		rsp, ok := rspObj.(*DubboResponse)
 		if !ok {
diff --git a/protocol/dubbo/hessian2/hessian_request.go b/protocol/dubbo/hessian2/hessian_request.go
index efcbd95d293fa84e8dfd6eddd9fdc14f05c3e6a2..94aa34dee895bc8d441f710edecabe0326da1400 100644
--- a/protocol/dubbo/hessian2/hessian_request.go
+++ b/protocol/dubbo/hessian2/hessian_request.go
@@ -220,23 +220,21 @@ func packRequest(service Service, header DubboHeader, req interface{}) ([]byte,
 	// body
 	//////////////////////////////////////////
 	if hb {
-		if err := encoder.Encode(nil); err != nil {
-			logger.Warnf("Encode(nil) = error: %v", err)
-		}
+		_ = encoder.Encode(nil)
 		goto END
 	}
 
 	// dubbo version + path + version + method
-	if err := encoder.Encode(DEFAULT_DUBBO_PROTOCOL_VERSION); err != nil {
+	if err = encoder.Encode(DEFAULT_DUBBO_PROTOCOL_VERSION); err != nil {
 		logger.Warnf("Encode(DEFAULT_DUBBO_PROTOCOL_VERSION) = error: %v", err)
 	}
-	if err := encoder.Encode(service.Path); err != nil {
+	if err = encoder.Encode(service.Path); err != nil {
 		logger.Warnf("Encode(service.Path) = error: %v", err)
 	}
-	if err := encoder.Encode(service.Version); err != nil {
+	if err = encoder.Encode(service.Version); err != nil {
 		logger.Warnf("Encode(service.Version) = error: %v", err)
 	}
-	if err := encoder.Encode(service.Method); err != nil {
+	if err = encoder.Encode(service.Method); err != nil {
 		logger.Warnf("Encode(service.Method) = error: %v", err)
 	}
 
diff --git a/protocol/grpc/protoc-gen-dubbo/main.go b/protocol/grpc/protoc-gen-dubbo/main.go
index fbcfa6f9d492afa8bc7848c733358b3cf7223e99..fe3e38dddd8bfc2a30ed89e6088516cad120ef79 100644
--- a/protocol/grpc/protoc-gen-dubbo/main.go
+++ b/protocol/grpc/protoc-gen-dubbo/main.go
@@ -43,7 +43,7 @@ func main() {
 		g.Error(err, "reading input")
 	}
 
-	if err := proto.Unmarshal(data, g.Request); err != nil {
+	if err = proto.Unmarshal(data, g.Request); err != nil {
 		g.Error(err, "parsing input proto")
 	}
 
diff --git a/protocol/jsonrpc/http.go b/protocol/jsonrpc/http.go
index 037744cf09c4aa229fd7d5f0a7444fd86e70f06f..11051df8ac05010e9e07fe14d44768dda9342201 100644
--- a/protocol/jsonrpc/http.go
+++ b/protocol/jsonrpc/http.go
@@ -189,7 +189,7 @@ func (c *HTTPClient) Do(addr, path string, httpHeader http.Header, body []byte)
 
 		return conn.SetDeadline(t)
 	}
-	if err := setNetConnTimeout(tcpConn, c.options.HTTPTimeout); err != nil {
+	if err = setNetConnTimeout(tcpConn, c.options.HTTPTimeout); err != nil {
 		return nil, err
 	}
 
diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go
index 8b61e8092ce5b0d8081095555ed49734db9a48b4..3232ee624de909320b129a15adebef5aec5108ac 100644
--- a/registry/zookeeper/registry.go
+++ b/registry/zookeeper/registry.go
@@ -251,8 +251,7 @@ func (r *zkRegistry) getListener(conf *common.URL) (*RegistryConfigurationListen
 	dataListener.mutex.Lock()
 	defer dataListener.mutex.Unlock()
 	if r.dataListener.subscribed[conf.ServiceKey()] != nil {
-
-		zkListener, _ := r.dataListener.subscribed[conf.ServiceKey()].(*RegistryConfigurationListener)
+		zkListener, _ = r.dataListener.subscribed[conf.ServiceKey()].(*RegistryConfigurationListener)
 		if zkListener != nil {
 			r.listenerLock.Lock()
 			defer r.listenerLock.Unlock()
@@ -284,7 +283,11 @@ func (r *zkRegistry) getListener(conf *common.URL) (*RegistryConfigurationListen
 	//Interested register to dataconfig.
 	r.dataListener.SubscribeURL(conf, zkListener)
 
-	go r.listener.ListenServiceEvent(conf, fmt.Sprintf("/dubbo/%s/"+constant.DEFAULT_CATEGORY, url.QueryEscape(conf.Service())), r.dataListener)
+	go r.listener.ListenServiceEvent(
+		conf,
+		fmt.Sprintf("/dubbo/%s/"+constant.DEFAULT_CATEGORY, url.QueryEscape(conf.Service())),
+		r.dataListener,
+	)
 
 	return zkListener, nil
 }
@@ -295,9 +298,9 @@ func (r *zkRegistry) getCloseListener(conf *common.URL) (*RegistryConfigurationL
 	r.dataListener.mutex.Lock()
 	configurationListener := r.dataListener.subscribed[conf.ServiceKey()]
 	if configurationListener != nil {
-		zkListener, _ := configurationListener.(*RegistryConfigurationListener)
-		if zkListener != nil {
-			if zkListener.isClosed {
+		rcListener, _ := configurationListener.(*RegistryConfigurationListener)
+		if rcListener != nil {
+			if rcListener.isClosed {
 				r.dataListener.mutex.Unlock()
 				return nil, perrors.New("configListener already been closed")
 			}
diff --git a/registry/zookeeper/service_discovery_test.go b/registry/zookeeper/service_discovery_test.go
index b7d4677deb4efc56f1d246dc1eabdb0033c94702..c9e14afd50af36e5e729f0efb768b37c56f0adf3 100644
--- a/registry/zookeeper/service_discovery_test.go
+++ b/registry/zookeeper/service_discovery_test.go
@@ -81,8 +81,7 @@ func TestCURDZookeeperServiceDiscovery(t *testing.T) {
 	sd, err := newZookeeperServiceDiscovery(testName)
 	assert.Nil(t, err)
 	defer func() {
-		err := sd.Destroy()
-		assert.Nil(t, err)
+		_ = sd.Destroy()
 	}()
 	md := make(map[string]string)
 	md["t1"] = "test1"
@@ -151,8 +150,7 @@ func TestAddListenerZookeeperServiceDiscovery(t *testing.T) {
 	sd, err := newZookeeperServiceDiscovery(testName)
 	assert.Nil(t, err)
 	defer func() {
-		err := sd.Destroy()
-		assert.Nil(t, err)
+		_ = sd.Destroy()
 	}()
 
 	err = sd.Register(&registry.DefaultServiceInstance{
@@ -164,8 +162,6 @@ func TestAddListenerZookeeperServiceDiscovery(t *testing.T) {
 		Healthy:     true,
 		Metadata:    nil,
 	})
-	assert.Nil(t, err)
-
 	assert.Nil(t, err)
 	wg := &sync.WaitGroup{}
 	wg.Add(1)
diff --git a/remoting/getty/dubbo_codec_for_test.go b/remoting/getty/dubbo_codec_for_test.go
index be6d9db07c681839485ddad65ce989d7235ec5af..9afc18a9aaf477588a2fbf051096494b6f887fa2 100644
--- a/remoting/getty/dubbo_codec_for_test.go
+++ b/remoting/getty/dubbo_codec_for_test.go
@@ -99,7 +99,7 @@ func (c *DubboTestCodec) EncodeRequest(request *remoting.Request) (*bytes.Buffer
 	return pkg.Marshal()
 }
 
-// encode heartbeart request
+// encode heartbeat request
 func (c *DubboTestCodec) encodeHeartbeartReqeust(request *remoting.Request) (*bytes.Buffer, error) {
 	header := impl.DubboHeader{
 		Type:     impl.PackageHeartbeat,
diff --git a/remoting/getty/listener.go b/remoting/getty/listener.go
index f4024111c662c4b26ad28a8660768d880b988869..fd4c4898f2a74fae0cca1cf6c2e86e3e2f75017e 100644
--- a/remoting/getty/listener.go
+++ b/remoting/getty/listener.go
@@ -237,8 +237,8 @@ func (h *RpcServerHandler) OnMessage(session getty.Session, pkg interface{}) {
 	}
 	h.rwlock.Unlock()
 
-	decodeResult, ok := pkg.(remoting.DecodeResult)
-	if !ok {
+	decodeResult, drOK := pkg.(remoting.DecodeResult)
+	if !drOK {
 		logger.Errorf("illegal package{%#v}", pkg)
 		return
 	}
@@ -252,7 +252,7 @@ func (h *RpcServerHandler) OnMessage(session getty.Session, pkg interface{}) {
 			res.Handle()
 			return
 		}
-		logger.Errorf("illegal package but not heartbeart. {%#v}", pkg)
+		logger.Errorf("illegal package but not heartbeat. {%#v}", pkg)
 		return
 	}
 	req := decodeResult.Result.(*remoting.Request)
diff --git a/remoting/getty/pool.go b/remoting/getty/pool.go
index 63c9c1a1fb4659ec2d4b07f14008acc99b9b9c3a..2d1a2fec5a906f02cad761696d1354525d1e9528 100644
--- a/remoting/getty/pool.go
+++ b/remoting/getty/pool.go
@@ -270,25 +270,25 @@ func (c *gettyRPCClient) updateSession(session getty.Session) {
 
 func (c *gettyRPCClient) getClientRpcSession(session getty.Session) (rpcSession, error) {
 	var (
-		err        error
-		rpcSession rpcSession
+		err error
+		rs  rpcSession
 	)
 	c.lock.RLock()
 	defer c.lock.RUnlock()
 	if c.sessions == nil {
-		return rpcSession, errClientClosed
+		return rs, errClientClosed
 	}
 
 	err = errSessionNotExist
 	for _, s := range c.sessions {
 		if s.session == session {
-			rpcSession = *s
+			rs = *s
 			err = nil
 			break
 		}
 	}
 
-	return rpcSession, perrors.WithStack(err)
+	return rs, perrors.WithStack(err)
 }
 
 func (c *gettyRPCClient) isAvailable() bool {
@@ -363,16 +363,16 @@ func (p *gettyRPCClientPool) close() {
 }
 
 func (p *gettyRPCClientPool) getGettyRpcClient(addr string) (*gettyRPCClient, error) {
-	conn, err := p.get()
-	if err == nil && conn == nil {
+	conn, connErr := p.get()
+	if connErr == nil && conn == nil {
 		// create new conn
-		rpcClientConn, err := newGettyRPCClientConn(p, addr)
-		if err == nil {
+		rpcClientConn, rpcErr := newGettyRPCClientConn(p, addr)
+		if rpcErr == nil {
 			p.put(rpcClientConn)
 		}
-		return rpcClientConn, perrors.WithStack(err)
+		return rpcClientConn, perrors.WithStack(rpcErr)
 	}
-	return conn, perrors.WithStack(err)
+	return conn, perrors.WithStack(connErr)
 }
 
 func (p *gettyRPCClientPool) get() (*gettyRPCClient, error) {
diff --git a/remoting/zookeeper/client.go b/remoting/zookeeper/client.go
index fbd90762eb34f361a38486ef2d8f5f10699a96f7..852a5564f955e9734be58515cf0e6840e69f2f78 100644
--- a/remoting/zookeeper/client.go
+++ b/remoting/zookeeper/client.go
@@ -128,18 +128,18 @@ func ValidateZookeeperClient(container ZkClientFacade, opts ...Option) error {
 
 	if container.ZkClient() == nil {
 		// in dubbo, every registry only connect one node, so this is []string{r.Address}
-		timeout, err := time.ParseDuration(url.GetParam(constant.REGISTRY_TIMEOUT_KEY, constant.DEFAULT_REG_TIMEOUT))
-		if err != nil {
-			logger.Errorf("timeout config %v is invalid ,err is %v",
-				url.GetParam(constant.REGISTRY_TIMEOUT_KEY, constant.DEFAULT_REG_TIMEOUT), err.Error())
-			return perrors.WithMessagef(err, "newZookeeperClient(address:%+v)", url.Location)
+		timeout, paramErr := time.ParseDuration(url.GetParam(constant.REGISTRY_TIMEOUT_KEY, constant.DEFAULT_REG_TIMEOUT))
+		if paramErr != nil {
+			logger.Errorf("timeout config %v is invalid, err is %v",
+				url.GetParam(constant.REGISTRY_TIMEOUT_KEY, constant.DEFAULT_REG_TIMEOUT), paramErr.Error())
+			return perrors.WithMessagef(paramErr, "newZookeeperClient(address:%+v)", url.Location)
 		}
 		zkAddresses := strings.Split(url.Location, ",")
-		newClient, err := NewZookeeperClient(options.zkName, zkAddresses, timeout)
-		if err != nil {
+		newClient, cltErr := NewZookeeperClient(options.zkName, zkAddresses, timeout)
+		if cltErr != nil {
 			logger.Warnf("newZookeeperClient(name{%s}, zk address{%v}, timeout{%d}) = error{%v}",
-				options.zkName, url.Location, timeout.String(), err)
-			return perrors.WithMessagef(err, "newZookeeperClient(address:%+v)", url.Location)
+				options.zkName, url.Location, timeout.String(), cltErr)
+			return perrors.WithMessagef(cltErr, "newZookeeperClient(address:%+v)", url.Location)
 		}
 		container.SetZkClient(newClient)
 		connected = true
diff --git a/remoting/zookeeper/client_test.go b/remoting/zookeeper/client_test.go
index af09edba48815044ff9002a68b438463113c4652..3d0949973d0aa01acf5178d20afb854debb5c763 100644
--- a/remoting/zookeeper/client_test.go
+++ b/remoting/zookeeper/client_test.go
@@ -96,7 +96,7 @@ func TestCreate(t *testing.T) {
 	ts, z, event, err := NewMockZookeeperClient("test", 15*time.Second)
 	assert.NoError(t, err)
 	defer func() {
-		err := ts.Stop()
+		_ = ts.Stop()
 		assert.Nil(t, err)
 	}()
 	err = z.Create("test1/test2/test3/test4")
@@ -110,7 +110,7 @@ func TestCreateDelete(t *testing.T) {
 	ts, z, event, err := NewMockZookeeperClient("test", 15*time.Second)
 	assert.NoError(t, err)
 	defer func() {
-		err := ts.Stop()
+		_ = ts.Stop()
 		assert.Nil(t, err)
 	}()
 
@@ -127,7 +127,7 @@ func TestRegisterTemp(t *testing.T) {
 	ts, z, event, err := NewMockZookeeperClient("test", 15*time.Second)
 	assert.NoError(t, err)
 	defer func() {
-		err := ts.Stop()
+		_ = ts.Stop()
 		assert.Nil(t, err)
 	}()
 	err = z.Create("/test1/test2/test3")
@@ -144,7 +144,7 @@ func TestRegisterTempSeq(t *testing.T) {
 	ts, z, event, err := NewMockZookeeperClient("test", 15*time.Second)
 	assert.NoError(t, err)
 	defer func() {
-		err := ts.Stop()
+		_ = ts.Stop()
 		assert.Nil(t, err)
 	}()
 	err = z.Create("/test1/test2/test3")
diff --git a/remoting/zookeeper/listener.go b/remoting/zookeeper/listener.go
index 7b90e523364b6a1a77b8e30ef73ddca6caffda6a..3eda6d9698e5ec244bb6c5763ebc8e459e03310e 100644
--- a/remoting/zookeeper/listener.go
+++ b/remoting/zookeeper/listener.go
@@ -135,9 +135,10 @@ func (l *ZkEventListener) handleZkNodeEvent(zkPath string, children []string, li
 	newChildren, err := l.client.GetChildren(zkPath)
 	if err != nil {
 		if err == errNilChildren {
-			content, _, err := l.client.Conn.Get(zkPath)
-			if err != nil {
-				logger.Errorf("Get new node path {%v} 's content error,message is  {%v}", zkPath, perrors.WithStack(err))
+			content, _, connErr := l.client.Conn.Get(zkPath)
+			if connErr != nil {
+				logger.Errorf("Get new node path {%v} 's content error,message is  {%v}",
+					zkPath, perrors.WithStack(connErr))
 			} else {
 				listener.DataChange(remoting.Event{Path: zkPath, Action: remoting.EventTypeUpdate, Content: string(content)})
 			}
@@ -158,9 +159,10 @@ func (l *ZkEventListener) handleZkNodeEvent(zkPath string, children []string, li
 
 		newNode = path.Join(zkPath, n)
 		logger.Infof("add zkNode{%s}", newNode)
-		content, _, err := l.client.Conn.Get(newNode)
-		if err != nil {
-			logger.Errorf("Get new node path {%v} 's content error,message is  {%v}", newNode, perrors.WithStack(err))
+		content, _, connErr := l.client.Conn.Get(newNode)
+		if connErr != nil {
+			logger.Errorf("Get new node path {%v} 's content error,message is  {%v}",
+				newNode, perrors.WithStack(connErr))
 		}
 
 		if !listener.DataChange(remoting.Event{Path: zkPath, Action: remoting.EventTypeAdd, Content: string(content)}) {