.net core使用ocelot---第六篇 负载均衡
简介
.net core使用ocelot---第一篇 简单使用
.net core使用ocelot---第二篇 身份验证
.net core使用ocelot---第三篇 日志记录
.net core使用ocelot---第四篇 限流熔断
.net core使用ocelot---第五篇 服务质量
本文介绍Ocelot的负载均衡模块。
什么是负载均衡
负载平衡可改善跨多个计算资源(例如计算机,计算机群集,网络链接,中央处理单元或磁盘驱动器)的工作负载分布。 负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间,并避免任何单个资源的过载。
对于我们的API服务,Ocelot的负载均衡是监听外部客户端访问服务的软件程序。
准备
我们需要创建三个项目并确保他们能够正常运行。
注意
我们使用的两个API服务和第一个几乎一样,便于更快的进入状态。
在APIServicesA项目中,返回“From APIServices”
[HttpGet]
public string Get()
{
return "From APIServiceA";
}
在APIServicesB项目中,返回“From APIServiceB”
[HttpGet]
public string Get()
{
return "From APIServiceB";
}
配置负载均衡
我们需要注意DownstreamHostAndPorts和LoadBalancer节点
DownstreamHostAndPorts是一个包含所有服务主机和端口的数组,在我们本文的例子中包括APIServiceA和APIServiceB.
LoadBalancer节点值是一个指明负载均衡算法的字符串。
目前,Ocelot支持两种负载均衡算法,一个是RoundRobin(循环),一个是LeastConnection(最少访问)
下面是一个配置负载均衡的示例
{
"DownstreamPathTemplate": "/api/values",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port":
},
{
"Host": "localhost",
"Port":
}
],
"UpstreamPathTemplate": "/",
"LoadBalancer": "RoundRobin",
//"LoadBalancer": "LeastConnection",
"UpstreamHttpMethod": [ "Get" ]
}
//others.....
上面配置的意思是说当我们访问http://localhost:9000/,我们会根据RoundRobin(循环)负载均衡策略,在http://localhost:9001/api/values 或者 http://localhost:9002/api/values中返回我们的结果。
我们演示一下

正如你看到的,返回值在From APIServiceB 和 From APIServiceA之间切换,证明我们的负载均衡起作用了。Ocelot将客户端请求传递到下游服务。
源码在此
网盘链接:https://pan.baidu.com/s/17sqfGcYx8yEHRL_LwKAUlA
提取码:p3d0
总结
本文简单介绍了Ocelot的负载均衡模块,它还有服务发现的功能,具体下文讲解。
.net core使用ocelot---第六篇 负载均衡的更多相关文章
- Asp.Net Core + Ocelot 网关搭建:负载均衡的配置
前言 上一篇中简单做了一个网关Demo.本篇中也记录一下负载均衡的配置实现. 演示 首先开三个服务,端口分别为 60001,60003,60005,然后分别启动三个服务.接下来在ApiGate ...
- 三、Ocelot请求聚合与负载均衡
上一篇文章介绍了在.Net Core中如何使用Ocelot:https://www.cnblogs.com/yangleiyu/p/16847439.html 本文介绍在ocelot的请求聚合与负载均 ...
- Ocelot中文文档-负载均衡
Ocelot能通过可用的下游服务对每个ReRoute进行负载平衡. 这意味着您可以扩展您的下游服务,并且Ocelot可以有效地使用它们. 可用的负载均衡器的类型是: LeastConnection - ...
- .net core中的分布式缓存和负载均衡
通过减少生成内容所需的工作,缓存可以显著提高应用的性能和可伸缩性,缓存对不经常更改的数据效果最佳,缓存生成的数据副本的返回速度可以比从原始源返回更快.ASP.NET Core 支持多种不同的缓存,最简 ...
- nginx入门篇----负载均衡策略
负载均衡策略 负载均衡策略:内置策略和扩展策略. 内置策略包括:轮询.加权轮询.IP hash:扩展策略包括:url hash.fair等 策略详细介绍 轮询:对前端的访问逐一分流到后端网络节点,类似 ...
- .net排坑篇:负载均衡域名转发的背后
背景 昨天因客户私有部署问题,需要到客户公司去排查问题. 他们是一家外企,各种权限需要提前申请(最大的坑).他们之前部署的一般为单域名,很少部署互联网类型多个域名的情形(第二个坑).这次私有部署总计使 ...
- 记录core中GRPC长连接导致负载均衡不均衡问题 二,解决长连接问题
题外话: 1.这几天收到蔚来的面试邀请,但是自己没做准备,并且远程面试,还在上班时间,再加上老东家对我还不错.没想着换工作,导致在自己工位上做算法题不想被人看见,然后非常紧张.估计over了.不过没事 ...
- .net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡
大神张善友 分享过一篇 <.NET Core 在腾讯财付通的企业级应用开发实践>里面就是用.net core 和 Ocelot搭建的可扩展的高性能Api网关. Ocelot(http:// ...
- 服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)
[前言] Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butt ...
随机推荐
- array.includes的使用
看看某个值在不在这个数组里面,是个完整的数 var array1 = [1, 2, 3]; console.log(array1.includes(2)); // expected output: t ...
- pytorch中tensor数据和numpy数据转换中注意的一个问题
转载自:(pytorch中tensor数据和numpy数据转换中注意的一个问题)[https://blog.csdn.net/nihate/article/details/82791277] 在pyt ...
- docker_基础用法
1. docker architecture 2. 命令
- html5 css3 背景视频循环播放代码
<div style ="position: absolute; z-index: -1; top: 0px; left: 0px; bottom: 0px; right: 0px; ...
- DELPHI7 ADO二层升三层新增LINUX服务器方案
DELPHI7 ADO二层升三层新增LINUX服务器方案 引子:笔者曾经无数次在用户的LINUX服务器上创建一个WINDOWS虚拟机,用于运行自己DELPHI开发中间件. 现在再不需要如此麻烦了. 咏 ...
- Android -------- BouncingJellyView 果冻视图(阻尼效果)
分享一个不错的效果,分享给大家 BouncingJellyView 果冻视图,就像果冻一样伸缩弹跳,也叫阻尼效果.这个效果在MIUI上面到处都可以看到. 效果图: 使用 项目更目录bulid.grad ...
- Java基础 while 简单示例
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- 泡泡一分钟:Learning Motion Planning Policies in Uncertain Environments through Repeated Task Executions
张宁 Learning Motion Planning Policies in Uncertain Environments through Repeated Task Executions 通过重 ...
- 必备Linux命令
文章来源:https://macrozheng.github.io/mall-learning/#/reference/linux 开发者必备Linux命令 开发者必备Linux常用命令,掌握这些命令 ...
- cpu多级缓存
CPU cache: CPU的频率太快,主存跟不上,在处理器时钟周期内,CPU需要等待主存,浪费资源.cpu cache的出现,缓解了cpu与主存之间速度不匹配的问题. CPU cache的特性: 1 ...