public void SetAppUp(IEurekaInstanceConfig instanceConfig, EurekaClientConfig config, ILoggerFactory factory) { this._logger.LogDebug("Start registering service instance..."); ApplicationInfoManager aim = this.InitializeApplicationInfoManager(instanceConfig); this.SetAppStatus(InstanceStatus.UP, aim); this._logger.LogDebug($"Service instance was registered (ip: {instanceConfig.IpAddress}, port: {instanceConfig.NonSecurePort}, sec-port: {instanceConfig.SecurePort})"); this._eurekaClient = this.InitializeEurekaClient(instanceConfig, config, factory); for (int i = 0; i < 120; i++) { try { IList <InstanceInfo> infoList = this._eurekaClient.GetInstanceById(instanceConfig.InstanceId); if (infoList != null && infoList.Count > 0) { this._logger.LogDebug("Service instance was online."); return; } Thread.Sleep(1000); } catch (Exception) { Thread.Sleep(1000); } } throw new ThriftyException($"Unable to connect to the eureka server (eureka server: {config.EurekaServerServiceUrls}), please check the swifty server configuration"); }
/// <summary> /// 初始化应用信息管理器 /// </summary> /// <param name="instanceConfig">实例配置</param> /// <returns>应用信息管理器</returns> ApplicationInfoManager InitializeApplicationInfoManager(IEurekaInstanceConfig instanceConfig) { if (this._applicationInfoManager == null) { lock (this) { if (ApplicationInfoManager.Instance.InstanceInfo == null) { ApplicationInfoManager.Instance.Initialize(instanceConfig); } this._applicationInfoManager = ApplicationInfoManager.Instance; } } return(this._applicationInfoManager); }
/// <summary> /// 修改实例状态 /// </summary> /// <param name="stauts">修改的状态</param> /// <param name="applicationInfoManager">应用管理器</param> void SetAppStatus(InstanceStatus stauts, ApplicationInfoManager applicationInfoManager) { applicationInfoManager.InstanceStatus = stauts; }