在 asp.net core 中使用 Consul
本篇介绍三个部分:
- 在 asp.net core 中引用 Consul
- 服务注册
- 服务发现
- 如何引用?直接装包就 OK:
- 服务注册:
在 asp.net core 管道的最末端执行即可,也就是放在 Startup 类中 Configure 方法的最后。也可以写一个 IConfiguration 的扩展方法,然后在 Configure 方法的最后调用
- 服务发现:
// 连接 Consul 客户端
ConsulClient client = new ConsulClient(c =>
{
c.Address = new Uri("http://localhost:8500");
c.Datacenter = "dc1";
});
// 获取指定的已注册的服务
string groupName = "service";
var response = client.Agent.Services().Result.Response
.Where(x => x.Value.Service.Equals(groupName, StringComparison.OrdinalIgnoreCase))
.ToArray();
// 这里没有做负载均衡,直接取第一个服务,也没有考虑其它异常的情况,仅作参考
var url = $"https://{response.First().Value.Address}:{response.First().Value.Port}/User/Users";
// 拿到 url 后,就是发起 http 请求,获取数据了
结束