/// <summary> /// 使用Consul作为服务注册和发现的组件 /// 读取配置:consul /// </summary> /// <param name="builder"></param> /// <param name="optionAction"></param> /// <returns></returns> public static IMicroServerBuilder AddConsul(this IMicroServerBuilder builder, Action <ConsulOption> optionAction = null) { builder.Services.AddSingleton <IServiceRegister>(provider => { var option = ConsulOption.Config(); optionAction?.Invoke(option); var logger = provider.GetService <ILogger <ConsulServiceRegister> >(); return(new ConsulServiceRegister(logger, option.Server, option.Token)); }); return(builder); }
/// <summary> /// 使用Consul作为服务注册和发现的组件 /// 读取配置:consul /// </summary> /// <param name="builder"></param> /// <param name="optionAction"></param> /// <returns></returns> public static IMicroClientBuilder AddConsul(this IMicroClientBuilder builder, Action <ConsulOption> optionAction = null) { builder.AddMemoryCache(); builder.AddSingleton <IServiceFinder>(provider => { var option = ConsulOption.Config(); optionAction?.Invoke(option); var cache = provider.GetService <IMemoryCache>(); return(new ConsulServiceFinder(cache, option.Server, option.Token)); }); return(builder); }
/// <summary> /// 使用Consul作为服务注册和发现的组件 /// 读取配置:micro:consul /// </summary> /// <param name="builder"></param> /// <param name="option"></param> /// <returns></returns> public static IMicroBuilder AddConsul(this IMicroBuilder builder, ConsulOption option) { builder.Services.AddSingleton <IServiceRegister>(provider => { var logger = provider.GetService <ILogger <ConsulServiceRegister> >(); return(new ConsulServiceRegister(logger, option.Server, option.Token)); }); builder.Services.AddMemoryCache(); builder.Services.AddSingleton <IServiceFinder>(provider => { var cache = provider.GetService <IMemoryCache>(); return(new ConsulServiceFinder(cache, option.Server, option.Token)); }); return(builder); }