/// <summary> /// start /// </summary> public override void Start() { if (this._config.Discovery != null && this._config.Discovery.Zookeeper != null && !string.IsNullOrEmpty(this._config.Discovery.Zookeeper.ConfigPath) && !string.IsNullOrEmpty(this._config.Discovery.Zookeeper.ConfigName) && !string.IsNullOrEmpty(this._config.Discovery.Zookeeper.ZNode)) { this._zkDiscovery = new ZoomkeeperDiscovery(this._config.Client, this._config.Discovery.Zookeeper.ConfigPath, this._config.Discovery.Zookeeper.ConfigName, this._config.Discovery.Zookeeper.ZNode, endpoints => { lock (this._lockObj) { var set = new HashSet <string>(this.GetAllRegisteredEndPoint().Select(c => c.Key).Distinct().ToArray()); set.ExceptWith(endpoints.Select(p => string.Concat(p.Address.ToString(), ":", p.Port.ToString())).Distinct().ToArray()); if (set.Count > 0) { foreach (var name in set) { this.UnRegisterEndPoint(name); } } foreach (var p in endpoints) { this.TryRegisterEndPoint(string.Concat(p.Address.ToString(), ":", p.Port.ToString()), new EndPoint[] { p }); } } }); } base.Start(); }
/// <summary> /// start /// </summary> public override void Start() { if (this._config.Discovery != null && this._config.Discovery.Zookeeper != null && !string.IsNullOrEmpty(this._config.Discovery.Zookeeper.ConfigPath) && !string.IsNullOrEmpty(this._config.Discovery.Zookeeper.ConfigName) && !string.IsNullOrEmpty(this._config.Discovery.Zookeeper.ZNode)) { this._zkDiscovery = new ZoomkeeperDiscovery(this._config.Client, this._config.Discovery.Zookeeper.ConfigPath, this._config.Discovery.Zookeeper.ConfigName, this._config.Discovery.Zookeeper.ZNode, endpoints => { lock (this._lockObj) { var set = new HashSet<string>(this.GetAllRegisteredEndPoint().Select(c => c.Key).Distinct().ToArray()); set.ExceptWith(endpoints.Select(p => string.Concat(p.Address.ToString(), ":", p.Port.ToString())).Distinct().ToArray()); if (set.Count > 0) { foreach (var name in set) this.UnRegisterEndPoint(name); } foreach (var p in endpoints) this.TryRegisterEndPoint(string.Concat(p.Address.ToString(), ":", p.Port.ToString()), new EndPoint[] { p }); } }); } base.Start(); }
/// <summary> /// stop /// </summary> public override void Stop() { if (this._zkDiscovery != null) { this._zkDiscovery.Dispose(); this._zkDiscovery = null; } base.Stop(); }