in provider/core/server/FSOFRegistry.php [88:126]
protected function createZookeeperService()
{
$ret = false;
if(isset($this->config['fsof_setting']['zk_url_list']))
{
try
{
$zkUrlList = $this->config['fsof_setting']['zk_url_list'];
$zkUrlArr = explode(',', $this->config['fsof_setting']['zk_url_list']);
$registryUrl = array();
foreach ($zkUrlArr as $zkUrl)
{
$url = new FSOFUrl($zkUrl);
$registryUrl[] = $url;
}
//创建与zookeeper连接用来上报和注销service信息
$this->zkService = RegistryServiceFactory::getRegistry($registryUrl);
//动态通过回调进行注册
$this->zkService->registerCallFunc(array($this,'watcherCallFunc'));
//连接zookeeper
$ret = $this->zkService->connectZk($this->ephemeral);
if($ret == false)
{
//重新连接一次
$ret = $this->zkService->connectZk($this->ephemeral);
}
if($ret == false)
{
$this->logger->error('connect zookeeper failed|app:' . $this->appName . '|zkurl:' . $zkUrlList);
}
}
catch (\Exception $e)
{
$this->logger->error('connect zookeeper failed|app:'.$e->getMessage(),$e);
}
}
return $ret;
}