.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 ...
随机推荐
- mysql 获取单个科目的平均分
mysql> select * from test; +----+----------+-------+-----------+ | id | name | score | subject | ...
- mysql ,limit 的使用
//offset参数指定要返回的第一行的偏移量.第一行的偏移量为0,第二行的偏移量为1.count指定要返回的最大行数.LIMIT offset,count; mysql> select * f ...
- mysql 根据日期时间查询数据
mysql> select * from table1; +----------+------------+-----+---------------------+ | name_new | t ...
- c++ 获取字符串中最长的回文子串
#include <vector> #include <iostream> #include <string> using namespace std; strin ...
- fillter根据value来匹配字段
字段对应 let cashBackState = { 'WAIT_FIVE': '满5单可返现', 'FINISHED': '已返现' } filters: { cashBackStateFilter ...
- 对5月13号中BaseDao方法进行优化改造,更接近于框架的编写
/* * 通用查询.更新升级版 * */ public class BaseDao2 { static { try { Class.forName(ConfigUtil.getValue(" ...
- Web前端开发规范之图片命名规范
图片的名称分为头尾两部分,用下划线隔开,头部表示此图片的大类性质,例如广告,标志,菜单,按钮等 banner:放置在页面顶部的广告,装饰图案等长方形的图片 logo:标志性的图片 button:在页面 ...
- QString 中文编码转换
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/xxm524/article/det ...
- ContextLoadListener & DispatcherServlet 加载顺序以及加载过程
org.springframework.web.context.ContextLoaderListener 1org.springframework.web.servlet.DispatcherSer ...
- openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息
openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息 为了实现业务系统针对不同地区IP访问,展示包含不同地区信息的业务交互界面.很多情况下系统需要根据用户访问的IP信息 ...