Ocelot 负载均衡:
背景知识,ocelot是基于 webapi 的网关框架,要使用ocelot来做路由转发和负载均衡,需要创建一个webapi,然后以这个webapi来做gateway.
以下是具体配置和测试结果:
1. RoundRobin 均衡方式,轮询调用子节点服务, 即 5011,5012这两个网站将会被轮流访问; 当然也可以设置为 LeastConnection 最少的连接,即哪个的请求少,则将请求发到哪个;
![](https://img2018.cnblogs.com/blog/1363721/201904/1363721-20190410181359626-1474330449.png)
![](https://img2018.cnblogs.com/blog/1363721/201904/1363721-20190410181445500-1432784644.png)
![](https://img2018.cnblogs.com/blog/1363721/201904/1363721-20190410181509389-2023810788.png)
上图 两次请求分别进入到了不同的服务节点中。
2. QoSOptions 熔断测试,超时3秒即熔断处理,熔断时间为5秒钟
熔断的意思是停止将请求转发到下游服务。当下游服务已经出现故障的时候再请求也是无功而返,并且还会增加下游服务器和API网关的负担。
一个API经常超时,那这个API节点将会进入5秒长的罢工状态,不接收任何请求,5秒后醒过来继续工作,这样大大地减少了网络资源消耗。
![](https://img2018.cnblogs.com/blog/1363721/201904/1363721-20190410181528308-2046914209.png)
![](https://img2018.cnblogs.com/blog/1363721/201904/1363721-20190410181613813-678143244.png)
3. RateLimit 限流测试,在1分钟内内超出10次请求,即限流
与熔断有些相似,当API在一分钟内被请求了多次,超出了限定的次数,也会进入罢工状态,请求结果会直接返回一个999。 等N秒之后,继续工作。
![](https://img2018.cnblogs.com/blog/1363721/201904/1363721-20190410181658606-362841801.png)
我们将对那些高频调用的API,做负载均衡处理,这个调用超时的熔断非常有用。
![](https://img2018.cnblogs.com/blog/1363721/201904/1363721-20190410181719774-1840541736.png)