/** * @param $invokDesc * @param $invoker * @return bool * Register consumer information node to the zookeeper. */ public function register($invokDesc, $invoker) { $desc = $invokDesc->toString(); if (!array_key_exists($desc, self::$ServiceMap)) { self::$ServiceMap[$desc] = $invoker; } $this->subscribe($invokDesc); $providerHost = $this->providersCluster->getProvider($invokDesc); $invoker->setHost(Invoker::genDubboUrl($providerHost, $invokDesc)); $registerNode = $this->makeRegistryNode($invokDesc->getService()); try { $parts = explode('/', $registerNode); $parts = array_filter($parts); $subpath = ''; while (count($parts) > 1) { $subpath .= '/' . array_shift($parts); if (!$this->zookeeper->exists($subpath)) { $this->zookeeper->create($subpath, '', $this->acl, null); } } if (!$this->zookeeper->exists($registerNode)) { $this->zookeeper->create($registerNode, '', $this->acl, null); } } catch (ZookeeperNoNodeException $ze) { error_log("This zookeeper node does not exsit.Please check the zookeeper node information."); } return true; }
public function register($invokDesc, $invoker) { $desc = $invokDesc->toString(); if (!array_key_exists($desc, self::$ServiceMap)) { self::$ServiceMap[$desc] = $invoker; } $this->subscribe($invokDesc); $providerHost = $this->providersCluster->getProvider($invokDesc); $invoker->setHost(Invoker::genDubboUrl($providerHost, $invokDesc)); $registerPath = $this->getRegistryPath($invokDesc->getService()); $this->zookeeper->create($registerPath, null, $this->acl, null); return true; }