示例#1
0
 /// <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);
 }
示例#3
0
 /// <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);
 }