/// <summary> /// 按服务名称,随机返回一个服务地址 /// </summary> /// <param name="serviceName"></param> /// <param name="minute"></param> /// <returns></returns> public ServiceInfo GetServiceInfo(string serviceName, double minute = 0) { Dictionary <string, ServiceInfo> all; if (minute > 0) { all = DelegateCache.Init("consulServiceCache", minute, () => { return(GetAllServices()); }); } else { all = GetAllServices(); } var services = all.Values.Where(b => b.Service == serviceName).ToList(); if (services.Count == 0) { throw new Exception($"找不到可用的服务:{serviceName}"); } int k = rng.Next(services.Count); return(services[k]); }
/// <summary> /// 按服务名称,随机返回一个服务地址 /// </summary> /// <param name="serviceName"></param> /// <param name="minute"></param> /// <returns></returns> public CatalogService GetServiceInfo(string serviceName, bool passingOnly = false, double minute = 0) { List <CatalogService> all; if (minute > 0) { all = DelegateCache.Init("consulServiceCache", minute, () => { return(GetService(serviceName, passingOnly)); }); } else { all = GetService(serviceName, passingOnly); } if (all.Count == 0) { throw new Exception($"找不到可用的服务:{serviceName}"); } int k = rng.Next(all.Count); return(all[k]); }