Skip to content
Snippets Groups Projects
Commit 00a25537 authored by vito.he's avatar vito.he
Browse files

Merge branch 'develop' of https://github.com/apache/dubbo-go into develop

parents b6c6052f c32af7b1
No related branches found
No related tags found
No related merge requests found
......@@ -46,10 +46,15 @@ func (l *RegistryDataListener) AddInterestedURL(url *common.URL) {
func (l *RegistryDataListener) DataChange(eventType remoting.Event) bool {
// Intercept the last bit
url := eventType.Path[strings.Index(eventType.Path, "/providers/")+len("/providers/"):]
index := strings.Index(eventType.Path, "/providers/")
if index == -1 {
logger.Warn("Listen with no url, event.path={%v}", eventType.Path)
return false
}
url := eventType.Path[index+len("/providers/"):]
serviceURL, err := common.NewURL(context.TODO(), url)
if err != nil {
logger.Errorf("Listen NewURL(r{%s}) = error{%v}", url, err)
logger.Errorf("Listen NewURL(r{%s}) = error{%v} eventType.Path={%v}", url, err, eventType.Path)
return false
}
for _, v := range l.interestedURL {
......
......@@ -381,7 +381,11 @@ func (r *zkRegistry) registerTempZookeeperNode(root string, node string) error {
}
zkPath, err = r.client.RegisterTemp(root, node)
if err != nil {
logger.Errorf("RegisterTempNode(root{%s}, node{%s}) = error{%v}", root, node, perrors.WithStack(err))
if err == zk.ErrNodeExists {
logger.Warnf("RegisterTempNode(root{%s}, node{%s}) = error{%v}", root, node, perrors.WithStack(err))
} else {
logger.Errorf("RegisterTempNode(root{%s}, node{%s}) = error{%v}", root, node, perrors.WithStack(err))
}
return perrors.WithMessagef(err, "RegisterTempNode(root{%s}, node{%s})", root, node)
}
logger.Debugf("create a zookeeper node:%s", zkPath)
......
......@@ -208,6 +208,20 @@ func (l *ZkEventListener) listenDirEvent(zkPath string, listener remoting.DataLi
// listen l service node
dubboPath := path.Join(zkPath, c)
//Save the path to avoid listen repeatly
l.pathMapLock.Lock()
_, ok := l.pathMap[dubboPath]
l.pathMapLock.Unlock()
if ok {
logger.Warnf("@zkPath %s has already been listened.", zkPath)
continue
}
l.pathMapLock.Lock()
l.pathMap[dubboPath] = struct{}{}
l.pathMapLock.Unlock()
content, _, err := l.client.Conn.Get(dubboPath)
if err != nil {
logger.Errorf("Get new node path {%v} 's content error,message is {%v}", dubboPath, perrors.WithStack(err))
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment