设为首页 加入收藏

TOP

Ocelot(五)- 流量限制、服务质量(三)
2019-09-17 17:49:00 】 浏览:35
Tags:Ocelot 流量 限制 服务 质量
tionsAllowedBeforeBreaking 必须跟 DurationOfBreak一起使用,TimeoutValue可以单独使用。

首先需要安装Polly支持程序,通过Nuget搜索Ocelot.Provider.Polly或者通过以下命令安装

Install-Package Ocelot.Provider.Polly

然后在Startup.cs中的ConfigureServices方法注册该中间件

using Ocelot.Provider.Polly;
public void ConfigureServices(IServiceCollection services)
{
    ……
    services.AddOcelot()
        .AddPolly();
    ……
}

ReRoutes中添加一组路由

{
    "DownstreamPathTemplate": "/api/ocelot/{postId}",
    "DownstreamScheme": "http",
    "DownstreamHostAndPorts": [
    {
        "Host": "localhost",
        "Port": 8001
    }
    ],
    "UpstreamPathTemplate": "/ocelot/qos/{postId}",
    "UpstreamHttpMethod": [ "Get" ],
    "Priority": 2,
    "QoSOptions": {
    "ExceptionsAllowedBeforeBreaking": 3,
    "DurationOfBreak": 3000,
    "TimeoutValue": 5000
    }
}

为了看出熔断效果,我将8001端口的下游服务停止了,然后运行OcelotDemo项目

当第一次向网关发出请求时,得到500的状态码

Ocelot_052_qos_500

连续3次请求过后,就会得到503的状态码,证明Ocelot已经产生熔断

Ocelot_053_qos_503

总结

在这篇文章中就跟大家介绍了Ocelot的两个基础功能,在路由中进行配置即可使用,不需要依赖于第三方的服务。当然在我实践的过程中产生的一个疑问暂时还没得到答案,如果有知道原因的朋友也可以给我留言,感激不尽。
结合前面的几篇文章,大家在设计项目API网关的时候就可以综合地考虑到底哪些功能应该配置使用,如何适当地建立路由表。例外,我在这几个案例中为了突出要介绍的功能,基本上都是一组路由单独配置一个功能,而在实际项目中通常都是需要在一组路由当中同时配置多个功能的,希望大家在实际项目中能够灵活运用。今天就先跟大家介绍到这里,希望大家能持续关注我们。

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C# Queue与RabbitMQ的爱恨情仇(.. 下一篇wcf configuration

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目