Example #1
0
        private async Task Start()
        {
            //if (_isStarted)
            //	return;

            if (_zookeeper != null)
            {
                await _zookeeper.CloseAsync();
            }

            _zookeeper = new Zookeeper(_registryAddress, _sessionTimeout, this);
            //_zookeeper = new Zookeeper("192.168.9.1:2181", 3600 * 1000, this);
            try
            {
                var root = await _zookeeper.ExistsAsync(ServiceRootPath).ConfigureAwait(false);

                if (root == null)
                {
                    try
                    {
                        ////创建一个节点root,数据是mydata,不进行ACL权限控制,节点为永久性的(即客户端shutdown了也不会消失)
                        // ReSharper disable once UnusedVariable
                        var serviceRootNode = await _zookeeper.CreateAsync(ServiceRootPath, "rpclite service root node".GetBytes(),
                                                                           ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT).ConfigureAwait(false);
                    }
                    catch (KeeperException ex)
                    {
                        if (ex.getCode() != KeeperException.Code.NODEEXISTS)
                        {
                            throw;
                        }
                    }
                }

                if (!_registerServiceDictionary.IsEmpty)
                {
                    foreach (var item in _registerServiceDictionary)
                    {
                        await RegisterInternalAsync(item.Key);
                    }
                }

                if (!_serviceAddressDictionary.IsEmpty)
                {
                    foreach (var item in _serviceAddressDictionary)
                    {
                        await LookupInternalAsync(new ServiceIdentifier(item.Value.ClientInfo.Name, item.Value.ClientInfo.Group));
                    }
                }

                //_isStarted = true;
            }
            catch (KeeperException ex)
            {
                LogHelper.Error(ex);
                throw;
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex);
                throw;
            }
        }
 public ZookeeperPsDriverInfo(PSDriveInfo driveInfo, IZookeeper zookeeper)
     : base(driveInfo)
 {
     this.zookeeper = zookeeper;
 }
		private async Task Start()
		{
			//if (_isStarted)
			//	return;

			if (_zookeeper != null)
				await _zookeeper.CloseAsync();

			_zookeeper = new Zookeeper(_registryAddress, _sessionTimeout, this);
			//_zookeeper = new Zookeeper("192.168.9.1:2181", 3600 * 1000, this);
			try
			{
				var root = await _zookeeper.ExistsAsync(ServiceRootPath).ConfigureAwait(false);

				if (root == null)
				{
					try
					{
						////创建一个节点root,数据是mydata,不进行ACL权限控制,节点为永久性的(即客户端shutdown了也不会消失) 
						// ReSharper disable once UnusedVariable
						var serviceRootNode = await _zookeeper.CreateAsync(ServiceRootPath, "rpclite service root node".GetBytes(),
							ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT).ConfigureAwait(false);
					}
					catch (KeeperException ex)
					{
						if (ex.getCode() != KeeperException.Code.NODEEXISTS)
							throw;
					}
				}

				if (!_registerServiceDictionary.IsEmpty)
				{
					foreach (var item in _registerServiceDictionary)
					{
						await RegisterInternalAsync(item.Key);
					}
				}

				if (!_serviceAddressDictionary.IsEmpty)
				{
					foreach (var item in _serviceAddressDictionary)
					{
						await LookupInternalAsync(new ServiceIdentifier(item.Value.ClientInfo.Name, item.Value.ClientInfo.Group));
					}
				}

				//_isStarted = true;
			}
			catch (KeeperException ex)
			{
				LogHelper.Error(ex);
				throw;
			}
			catch (Exception ex)
			{
				LogHelper.Error(ex);
				throw;
			}
		}
 public NormalizePathZookeeperDecorator(IZookeeper innerZookeeper)
 {
     this.innerZookeeper = innerZookeeper;
 }