diff --git a/registry/kubernetes/listener.go b/registry/kubernetes/listener.go
index 7837233c18e364ef718b3617812cf68747785b88..528ec6486e481afe11ed5837b3138b7ec1508c06 100644
--- a/registry/kubernetes/listener.go
+++ b/registry/kubernetes/listener.go
@@ -38,11 +38,13 @@ type dataListener struct {
 	listener      config_center.ConfigurationListener
 }
 
-// NewRegistryDataListener ...
+// NewRegistryDataListener
+// new the data  listener, the interest url default len 16
 func NewRegistryDataListener(listener config_center.ConfigurationListener) *dataListener {
 	return &dataListener{listener: listener, interestedURL: make(map[string]*common.URL, 16)}
 }
 
+// AddInterestedURL
 func (l *dataListener) AddInterestedURL(url *common.URL) {
 
 	if _, ok := l.interestedURL[url.String()]; ok {
@@ -51,6 +53,8 @@ func (l *dataListener) AddInterestedURL(url *common.URL) {
 	l.interestedURL[url.String()] = url
 }
 
+// DataChange
+// notify listen, when interest event
 func (l *dataListener) DataChange(eventType remoting.Event) bool {
 
 	url := eventType.Path[strings.Index(eventType.Path, "/providers/")+len("/providers/"):]
diff --git a/registry/kubernetes/registry.go b/registry/kubernetes/registry.go
index 79f066a9bdcb2e3e3136b450cebe6da37e2fc50e..14dd4a3722967d28de19c09e1e097d6eefcf7e7c 100644
--- a/registry/kubernetes/registry.go
+++ b/registry/kubernetes/registry.go
@@ -87,9 +87,13 @@ func (r *kubernetesRegistry) CloseAndNilClient() {
 }
 
 func (r *kubernetesRegistry) CloseListener() {
+
+	r.cltLock.Lock()
 	if r.configListener != nil {
 		r.configListener.Close()
 	}
+	r.configListener = nil
+	r.cltLock.Unlock()
 }
 
 func (r *kubernetesRegistry) CreatePath(k string) error {