当前位置: 首页 > news >正文

青海网页设计与网站建设wordpress文件储存

青海网页设计与网站建设,wordpress文件储存,社保网站做员工用工备案吗,化隆网站建设公司系列文章目录 1、.Net Core微服务入门系列#xff08;一#xff09;——项目搭建 2、.Net Core微服务入门全纪录#xff08;二#xff09;——Consul-服务注册与发现#xff08;上#xff09; 3、.Net Core微服务入门全纪录#xff08;三#xff09;——Consul-服务注…系列文章目录 1、.Net Core微服务入门系列一——项目搭建 2、.Net Core微服务入门全纪录二——Consul-服务注册与发现上 3、.Net Core微服务入门全纪录三——Consul-服务注册与发现下 4、.Net Core微服务入门全纪录四——Ocelot-API网关上 5、.Net Core微服务入门全纪录五——Ocelot-API网关下 6、.Net Core微服务入门全纪录六——EventBus-事件总线 7、.Net Core微服务入门全纪录七——IdentityServer4-授权认证 8、.Net Core微服务入门全纪录八——Docker Compose与容器网络 文章目录 系列文章目录前言一、服务发现二、服务治理2.1 缓存2.2 限流2.3 超时/熔断 三、总结 前言 关于 微服务 的概念解释网上有很多 个人理解微服务是一种系统架构模式它和语言无关和框架无关和工具无关和服务器环境无关。 微服务思想 是将传统的单体系统按照业务拆分成多个职责单一、且可独立运行的接口服务。至于服务如何拆分没有明确的定义。几乎任何后端语言都能做微服务开发。微服务也并不是完美无缺的微服务架构会带来更多的问题增加系统的复杂度引入更多的技术栈。 上一篇【.Net Core微服务入门全纪录四——Ocelot-API网关上】已经完成了Ocelot网关的基本搭建实现了服务入口的统一。当然这只是API网关的一个最基本功能它的进阶功能还有很多很多。 一、服务发现 首先需要解决的就是服务发现的问题服务发现的优点之前讲过就不说了。 上一篇中我们的服务地址都是写在 ocelot.json 配置文件里现在我们需要结合之前的 Consul来实现服务发现。 改造代码 首先 NuGet 安装 Ocelot.Provider.Consul 修改 Startup.cs public void ConfigureServices(IServiceCollection services){//添加ocelot服务services.AddOcelot().AddConsul();//添加consul支持} 修改 ocelot.json 配置 {Routes: [{DownstreamPathTemplate: /products,DownstreamScheme: http,UpstreamPathTemplate: /products,UpstreamHttpMethod: [ Get ],ServiceName: ProductService,LoadBalancerOptions: {Type: RoundRobin}},{DownstreamPathTemplate: /orders,DownstreamScheme: http,UpstreamPathTemplate: /orders,UpstreamHttpMethod: [ Get ],ServiceName: OrderService,LoadBalancerOptions: {Type: RoundRobin}}],GlobalConfiguration: {BaseUrl: http://localhost:9070,ServiceDiscoveryProvider: {Scheme: http,Host: localhost,Port: 8500,Type: Consul}} } 这个配置应该很好理解就是把我们上次的 DownstreamHostAndPorts 节点去掉了然后增加了ServiceDiscoveryProvider 服务发现相关配置。 注意Ocelot 除了支持 Consul 服务发现以外还有 Eureka 也可以Eureka 也是一个类似的注册中心。 好了代码修改就差不多了下面运行程序测试一下 客户端正常运行。 至此我们就实现了服务注册与发现和api网关的基本功能。接下来就要提到服务治理 二、服务治理 其实 服务治理 也没有一个非常明确的定义。它的作用简单来说就是帮助我们更好的管理服务提升服务的可用性。——缓存限流熔断链路追踪 等等。。。都属于常用的服务治理手段。 之前讲的负载均衡服务发现也可以算是服务治理。 2.1 缓存 在 Ocelot 中启用缓存需要 NuGet 安装一下 Ocelot.Cache.CacheManager 修改 Startup.cs 中的 ConfigureServices() 方法 //添加ocelot服务 services.AddOcelot()//添加consul支持.AddConsul()//添加缓存.AddCacheManager(x {x.WithDictionaryHandle();}); 修改 ocelot.json 配置文件 {Routes: [{DownstreamPathTemplate: /products,DownstreamScheme: http,UpstreamPathTemplate: /products,UpstreamHttpMethod: [ Get ],ServiceName: ProductService,LoadBalancerOptions: {Type: RoundRobin},FileCacheOptions: {TtlSeconds: 5,Region: regionname}},{DownstreamPathTemplate: /orders,DownstreamScheme: http,UpstreamPathTemplate: /orders,UpstreamHttpMethod: [ Get ],ServiceName: OrderService,LoadBalancerOptions: {Type: RoundRobin},FileCacheOptions: {TtlSeconds: 5,Region: regionname}}],GlobalConfiguration: {BaseUrl: http://localhost:9070,ServiceDiscoveryProvider: {Scheme: http,Host: localhost,Port: 8500,Type: Consul}} } 在 Routes 路由配置中增加了 FileCacheOptions 。TtlSeconds 代表缓存的过期时间Region 代表缓冲区名称这个我们目前用不到。 好了代码修改完需要编译重启一下网关项目然后打开客户端网站测试一下 可以看到5秒之内的请求都是同样的缓存数据。Ocelot 也支持自定义缓存。 2.2 限流 限流就是限制客户端一定时间内的请求次数。 继续修改配置 {Routes: [{DownstreamPathTemplate: /products,DownstreamScheme: http,UpstreamPathTemplate: /products,UpstreamHttpMethod: [ Get ],ServiceName: ProductService,LoadBalancerOptions: {Type: RoundRobin},FileCacheOptions: {TtlSeconds: 5,Region: regionname},RateLimitOptions: {ClientWhitelist: [ SuperClient ],EnableRateLimiting: true,Period: 5s,PeriodTimespan: 2,Limit: 1}},{DownstreamPathTemplate: /orders,DownstreamScheme: http,UpstreamPathTemplate: /orders,UpstreamHttpMethod: [ Get ],ServiceName: OrderService,LoadBalancerOptions: {Type: RoundRobin},FileCacheOptions: {TtlSeconds: 5,Region: regionname},RateLimitOptions: {ClientWhitelist: [ SuperClient ],EnableRateLimiting: true,Period: 5s,PeriodTimespan: 2,Limit: 2}}],GlobalConfiguration: {BaseUrl: http://localhost:9070,ServiceDiscoveryProvider: {Scheme: http,Host: localhost,Port: 8500,Type: Consul},RateLimitOptions: {DisableRateLimitHeaders: false,QuotaExceededMessage: too many requests...,HttpStatusCode: 999,ClientIdHeader: Test}} } 在 Routes 路由配置中增加了 RateLimitOptions。ClientWhitelist 代表客户端 白名单在白名单中的客户端可以不受限流的影响EnableRateLimiting 代表是否限流Period代表限流的单位时间例如1s5m1h1d等PeriodTimespan代表客户端达到请求上限多少秒后可以重试Limit 代表客户端在定义的时间内可以发出的最大请求数。 在 GlobalConfiguration 配置中也增加了 RateLimitOptions 。 DisableRateLimitHeaders 代表是否禁用 X-Rate-Limit 和 Retry-After 标头请求达到上限时 response header 中的限制数和多少秒后能重试 QuotaExceededMessage代表请求达到上限时返回给客户端的消息 HttpStatusCode代表请求达到上限时返回给客户端的HTTP状态代码。ClientIdHeader可以允许自定义用于标识客户端的标头。默认情况下为 “ClientId” 。 最重要的就是 PeriodPeriodTimespanLimit 这几个配置。 重新编译启动看一下效果 2.3 超时/熔断 超时很好理解就是网关请求服务时可容忍的最长响应时间。熔断的意思就是当请求某个服务的异常次数达到一定量时那么网关在一定时间内就不再对这个服务发起请求了直接熔断。 Ocelot 中启用 超时/熔断 需要 NuGet 安装一下 Ocelot.Provider.Polly 修改 Startup.cs 中的 ConfigureServices() 方法 //添加ocelot服务 services.AddOcelot()//添加consul支持.AddConsul()//添加缓存.AddCacheManager(x {x.WithDictionaryHandle();})//添加Polly.AddPolly(); 同样的在 ocelot.json 路由配置中增加 QoSOptions QoSOptions: {ExceptionsAllowedBeforeBreaking: 3,DurationOfBreak: 10000,TimeoutValue: 5000} ExceptionsAllowedBeforeBreaking 代表发生错误的次数DurationOfBreak代表熔断时间TimeoutValue代表超时时间。 以上的配置意思就是当服务发生3次错误时那么就熔断10秒期间客户端的请求直接返回错误10秒之后恢复。 这个不太好模拟就不演示了应该也挺好理解的。 三、总结 关于服务治理的学问还有很多不继续了。。。就到此为止吧。 想要更深入了解 Ocelot 的请看官网https://ocelot.readthedocs.io/en/latest/ 或者看源码https://github.com/ThreeMammals/Ocelot 下一篇准备说一下事件总线。
http://www.w-s-a.com/news/967077/

相关文章:

  • 网站开发书籍推荐青岛城阳新闻最新消息
  • 秦皇岛网站建设服务聊城做网站的公司资讯
  • 30岁转行做网站设计丰涵网站建设
  • 山东省和住房建设厅网站首页开发商不按时交房可以退房吗
  • asp网站怎么做404页面跳转本地南通网站建设
  • 点击网站出现微信二维码的链接怎么做申请网站空间怎么做
  • 网站开发的论文题目广告设计排行榜
  • 网络营销网站 功能南京h5制作公司
  • 做网站的费用的会计分录合肥做网站推广哪家好
  • 电子商城网站开发怎么wordpress用的什么主题
  • 榆林电商网站建设网上做试卷的网站
  • 文山网站建设代理中公教育培训机构官网
  • 郑州it培训机构有哪些上海外贸网站seo
  • dw做网站的实用特效广东住房与城乡建设厅网站
  • 模板网站 动易哪方面的网站
  • 怎么给网站做外链邵连虎郑州做网页的公司
  • 重庆网站开发哪家好宁波网站建设caiyiduo
  • 手机网站建设价格手机网站模版更换技巧
  • 哈尔滨松北区建设局网站美妆网站建设
  • 不需要网站备案的空间网站推广的基本方法是哪四个
  • 如何检查网站死链劳动仲裁院内部网站建设
  • 江西省住房和城乡建设网站合同管理系统
  • 网站建设质量保证福州网络推广
  • 高唐网站建设公司广州南站在哪个区
  • 广西柳州网站制作公司郴州网红打卡景点
  • 做网站要固定ip拍摄公司宣传片制作
  • 专业微网站电话号码做软件难吗
  • 邢台网站制作哪家强上海做网站设计
  • 大连网站建设外贸wordpress添加文章属性
  • 商城网站建设合同范本网上哪里可以免费学编程