分两步 第一步是服务内部集成consul,这个相对简单 第二步是ocelot集成consul网关,这个相对麻烦一点
1、内部微服务集成consul集群
需要的配置
public class ConsulConfig
{
public string IP { get; set; } //程序的本机地址 默认是本机的所有地址
public int port { get; set; }//程序的本机端口 注册中心使用
public string consulAddress { get; set; } //consul 地址
public string serviceId { get; set; } //程序的服务id 唯一值
public string serviceName { get; set; } //服务的名称
public string checkUrl { get; set; } //服务的名称
public int checkInterval { get; set; } //服务检查间隔
public string dataCenter { get; set; } //数据中心名称 默认的是dc1
public string enable { get; set; } //是否启用
}
配置:"Consul": {
//单节点
//"Address": "http://XXX:8500",
//"Address": "http://XXX:8500",
"CheckUrl": "/Heath/check",
"CheckInterval": 60, //检查间隔(单位:秒)
"DataCenter": "", //为空则是默认的 dc1
"enable": "1", //是否启用 默认是不启用 1启用 其他不启用
"ignoreNetwork": ".*Sangfor.*,.*Microsoft.*,.*TAP-Windows.*,.*VMware.*,.*VirtualBox.*,.*vEthernet.*,.*Virtual.*,.*Hyper-V.*" //忽略的网卡, //"Address": "http://192.168.1.138:8500",
"enable": "0", //是否启用 默认是不启用 1启用 其他不启用
//集群模式
"Address": "http://XXX:8500,http://1XXX:8500,http://1XXX:8500",
"DataCenter": "XXX"
},
集成方法
/// <summary>
/// 添加consul客户端
/// </summary>
/// <param name="services"></param>
/// <returns></returns>
public static IServiceCollection AddConsulClient(this IServiceCollection services)
{
ConsulConfig consulConfig = getConfig(services);
if (consu