微服务架构 Consul gateway - Go语言中文社区

微服务架构 Consul gateway


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

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

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

环境  win10,开发工具 VS2019

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

流程图

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

代码我就没分开

服务端很简单,webapi走起

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

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

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

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

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

 

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

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

 

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

限流和熔断暂时没试。 

几条命令:

1 启动 consul

consul agent -dev

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

3最后是启动 网关

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

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

结果图:

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

  

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_38559484/article/details/106260240
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-17 08:09:21
  • 阅读 ( 1294 )
  • 分类:架构

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢