diff --git a/registry/nacos/registry.go b/registry/nacos/registry.go
index de68e74906ecf14330d12bfb0ae42e86648ff9e3..e9a4bd317ef5482ff98b4f1a9d3920d5b86aad42 100644
--- a/registry/nacos/registry.go
+++ b/registry/nacos/registry.go
@@ -172,6 +172,11 @@ func (nr *nacosRegistry) subscribe(conf *common.URL) (registry.Listener, error)
 
 // subscribe from registry
 func (nr *nacosRegistry) Subscribe(url *common.URL, notifyListener registry.NotifyListener) error {
+	role, _ := strconv.Atoi(nr.URL.GetParam(constant.ROLE_KEY, ""))
+	if role != common.CONSUMER {
+		return nil
+	}
+
 	for {
 		if !nr.IsAvailable() {
 			logger.Warnf("event listener game over.")