.Net Core微服务入门全纪录(五)——Ocelot-API网关(下)
Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章。 前言上一篇【.Net Core微服务入门全纪录(四)——Ocelot-API网关(上)】已经完成了Ocelot网关的基本搭建,实现了服务入口的统一。当然,这只是API网关的一个最基本功能,它的进阶功能还有很多很多。 服务发现首先需要解决的就是服务发现的问题,服务发现的优点之前讲过,就不说了。
首先NuGet安装 修改Startup.cs:
修改ocelot.json配置:
这个配置应该很好理解,就是把我们上次的DownstreamHostAndPorts节点去掉了,然后增加了ServiceDiscoveryProvider服务发现相关配置。 好了,代码修改就差不多了,下面运行程序测试一下: 客户端正常运行。 至此我们就实现了服务注册与发现和api网关的基本功能。接下来就要提到:服务治理 服务治理其实服务治理也没有一个非常明确的定义。它的作用简单来说,就是帮助我们更好的管理服务,提升服务的可用性。——缓存,限流,熔断,链路追踪 等等。。。都属于常用的服务治理手段。
在Ocelot中启用缓存,需要NuGet安装一下 修改Startup.cs中的ConfigureServices()方法:
修改ocelot.json配置文件:
在Routes路由配置中增加了FileCacheOptions。TtlSeconds代表缓存的过期时间,Region代表缓冲区名称,这个我们目前用不到。 好了,代码修改完需要编译重启一下网关项目,然后打开客户端网站测试一下: 可以看到,5秒之内的请求都是同样的缓存数据。Ocelot也支持自定义缓存。
限流就是限制客户端一定时间内的请求次数。
在Routes路由配置中增加了RateLimitOptions。ClientWhitelist代表客户端白名单,在白名单中的客户端可以不受限流的影响;EnableRateLimiting代表是否限流;Period代表限流的单位时间,例如1s,5m,1h,1d等;PeriodTimespan代表客户端达到请求上限多少秒后可以重试;Limit代表客户端在定义的时间内可以发出的最大请求数。 重新编译启动看一下效果:
超时很好理解,就是网关请求服务时可容忍的最长响应时间。熔断的意思就是当请求某个服务的异常次数达到一定量时,那么网关在一定时间内就不再对这个服务发起请求了,直接熔断。 修改Startup.cs中的ConfigureServices()方法:
同样的在ocelot.json路由配置中增加QoSOptions:
ExceptionsAllowedBeforeBreaking代表发生错误的次数,DurationOfBreak代表熔断时间,TimeoutValue代表超时时间。 。。。。。。 关于服务治理的学问还有很多,不继续了。。。就到此为止吧。 下一篇准备说一下:事件总线。 代码放在:https://github.com/xiajingren/NetCoreMicroserviceDemo 未完待续... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何删除IIS自定义标头像X-Powered-By:ASP.NET从响应?
- asp.net-web-api2 – asp.net 5和IdentityServer4
- asp.net-mvc – MVC架构 – 重新使用相同的viewmodel进行读
- asp.net – 不允许使用用于访问路径’/test.html’的HTTP谓
- RegisterStartupScript无法在更新面板中工作,无法在asp.net
- asp.net – 服务器端/客户端或两者用户输入验证
- asp.net – aspx页面中的选项卡
- if-statement – 如何在VBScript for Classic-ASP中单行执行
- asp.net – 如何在Azure共享主机中启动Hangfire(“永远在线
- asp.net-mvc – ASP.NET MVC,在使用EF 4时形成auth或自定义
- asp.net-mvc-2 – User.Identity数据来自哪里?
- asp.net – ScriptManager的EnablePartialRender
- asp.net-mvc – 模拟FormsAuthentication.Authen
- asp.net – 跟踪当前在线用户的最佳方式
- ASP.NET MVC在httpPost之后返??回Index视图
- asp.net-mvc-4 – 页脚的Kendo Grid Aggregation
- asp.net – 如何在没有phsyical .ASMX文件的情况
- asp.net-mvc – 用于子操作的MVC OutputCache:它
- asp.net-mvc – 远程验证OnBlur和空字符串
- asp.net-mvc – 使用缓存配置文件缓存ChildActio