简介

  .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---第六篇 负载均衡的更多相关文章

  1. Asp.Net Core + Ocelot 网关搭建:负载均衡的配置

    前言   上一篇中简单做了一个网关Demo.本篇中也记录一下负载均衡的配置实现. 演示   首先开三个服务,端口分别为 60001,60003,60005,然后分别启动三个服务.接下来在ApiGate ...

  2. 三、Ocelot请求聚合与负载均衡

    上一篇文章介绍了在.Net Core中如何使用Ocelot:https://www.cnblogs.com/yangleiyu/p/16847439.html 本文介绍在ocelot的请求聚合与负载均 ...

  3. Ocelot中文文档-负载均衡

    Ocelot能通过可用的下游服务对每个ReRoute进行负载平衡. 这意味着您可以扩展您的下游服务,并且Ocelot可以有效地使用它们. 可用的负载均衡器的类型是: LeastConnection - ...

  4. .net core中的分布式缓存和负载均衡

    通过减少生成内容所需的工作,缓存可以显著提高应用的性能和可伸缩性,缓存对不经常更改的数据效果最佳,缓存生成的数据副本的返回速度可以比从原始源返回更快.ASP.NET Core 支持多种不同的缓存,最简 ...

  5. nginx入门篇----负载均衡策略

    负载均衡策略 负载均衡策略:内置策略和扩展策略. 内置策略包括:轮询.加权轮询.IP hash:扩展策略包括:url hash.fair等 策略详细介绍 轮询:对前端的访问逐一分流到后端网络节点,类似 ...

  6. .net排坑篇:负载均衡域名转发的背后

    背景 昨天因客户私有部署问题,需要到客户公司去排查问题. 他们是一家外企,各种权限需要提前申请(最大的坑).他们之前部署的一般为单域名,很少部署互联网类型多个域名的情形(第二个坑).这次私有部署总计使 ...

  7. 记录core中GRPC长连接导致负载均衡不均衡问题 二,解决长连接问题

    题外话: 1.这几天收到蔚来的面试邀请,但是自己没做准备,并且远程面试,还在上班时间,再加上老东家对我还不错.没想着换工作,导致在自己工位上做算法题不想被人看见,然后非常紧张.估计over了.不过没事 ...

  8. .net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

    大神张善友 分享过一篇 <.NET Core 在腾讯财付通的企业级应用开发实践>里面就是用.net core 和 Ocelot搭建的可扩展的高性能Api网关. Ocelot(http:// ...

  9. 服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)

    [前言] Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butt ...

随机推荐

  1. 【算法编程 C++ Python】二维数组查找

    题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: 最简单:每一行都 ...

  2. 设置应用程序的样式并对其进行部署——《Python编程从入门到实践》

    我们将使用应用程序django-bootstrap3为Web应用程序设计样式.我们将把项目"学习笔记"部署到Heroku,这个网站能让我们们将项目推送到其服务器,让任何有网络连接的 ...

  3. elastic stack安装运行(docker)

    https://www.docker.elastic.co 注:目前阿里云为7.4 elasticsearch 参考https://www.elastic.co/guide/en/elasticsea ...

  4. mysql死锁(锁与事务)

    线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”. Oh, My God! 是死锁问题.尽管报错不多,对性能目前看来 ...

  5. 含有虚拟列的表 怎么用EXP导出?

    最近导一个测试库,报有虚拟列的表不支持,如下: EXP-00107: Feature (VIRTUAL COLUMN) of column CTB_CLIENT_SUBMIT_TIME_MONTH i ...

  6. Spring Boot方式的Dubbo项目

    项目依赖 需要org.apache.dubbo.dubbo-dependencies-bom, 需要org.apache.dubbo.dubbo-spring-boot-starter, 当前版本有2 ...

  7. android -------- DES加密解密算法

    DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信 ...

  8. XCode教程之 如何在苹果开发者平台添加设备UDID

    XCode教程之 如何在苹果开发者平台添加设备UDID.在Xcode开发中,如何在苹果开发者平台添加新的手机设备UDID,进行测试,具体如下 工具/原料 Apple Developer 方法/步骤 1 ...

  9. 小数末尾是0的,不显示0,有值才显示 StringFormat

    JAVA public static void main(String[] args) { DecimalFormat df = new DecimalFormat("###.##" ...

  10. python中的一些算法

    两个基础知识点:递归和时间复杂度 递归 递归函数的特点:自己调用自己,有结束条件,看下面例子: def fun1(x): """无结束条件,报错""& ...