.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": 9001  
    },  
    {  
      "Host": "localhost",  
      "Port": 9002  
    }  
  ],  
  "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的負載均衡模塊,它還有服務發現的功能,具體下文講解。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM