天天看点

微服务架构 Consul gateway

之前写过一篇关于集群 Consul   负载均衡https://blog.csdn.net/qq_38559484/article/details/104041267的文章

里面的记录现在看来是没有写全,所有现在在补充一份(重新写了一次)也是为了让自己加深印象

新加了轮询,权重 均衡策略,网关gataway  缓存 熔断 限流

环境  win10,开发工具 VS2019

能够完成 consul示例  要感谢朝夕教育的Eleven 老师,看他的视频写的

流程图

微服务架构 Consul gateway

流程图应该没画错,中间包括了服务的注册与发现,服务的健康检查,

代码我就没分开

微服务架构 Consul gateway

服务端很简单,webapi走起

微服务架构 Consul gateway

 ConsulHelper,服务的注册,里面设置了一些属性 主要是服务的健康检查 ,服务注册到consul,每隔一段时间就去调用一下服务 这样就是健康检查,若是超过多少时间没有响应,将在consul里删除服务。

        若是这个服务地址A之前注册到consul里,后来出现异常,从consul里删除,在重新启用该服务地址A,那么consul里也会重新添加该服务地址A

微服务架构 Consul gateway

▶在consul集群之前,单服务实例的时候,客户端直接调用服务地址

▶在consul集群后,只需要找到对应的consul地址,根据负载均衡策略调用服务地址

▶在用网关后 只需要配置好网关对应的consul地址,就等于访问consul一样 

在没有网关之前,客户端需要访问consul里的服务,需要写上一大堆代码来发现和调用consul里的服务

微服务架构 Consul gateway

有了网关之前,这些操作都可以删除,

微服务架构 Consul gateway

 调用网关,最重要的就是配置网关的配置文件  configuration.json

微服务架构 Consul gateway

限流和熔断暂时没试。 

几条命令:

1 启动 consul

consul agent -dev

微服务架构 Consul gateway

2 启用服务

dotnet  SK.MicServices.Servicesinstance.dll --urls="http://*:4557" --ip="127.0.0.1" --port=4557 --weight=1

dotnet  SK.MicServices.Servicesinstance.dll --urls="http://*:4558" --ip="127.0.0.1" --port=4558 --weight=3

dotnet  SK.MicServices.Servicesinstance.dll --urls="http://*:4559" --ip="127.0.0.1" --port=4559 --weight=6

port 是端口,weight 是权重  若是轮询或者平均分配 则可以不用weight

微服务架构 Consul gateway

3最后是启动 网关

dotnet  SK.MicServices.GatewayDemo.dll  --urls="http://*:9527" --ip="127.0.0.1" --port=9527

这里注意,之前我想把端口设置为 666 或者888这样的  结果访问不了 换个端口就可以了

微服务架构 Consul gateway

结果图:

微服务架构 Consul gateway
微服务架构 Consul gateway

调用网关结果:这里做了缓存,在不同的时间刷新的,可以看到调用同一个网关地址,返回不同的服务端口

微服务架构 Consul gateway