簡介 .net core使用ocelot 第一篇 簡單使用 .net core使用ocelot 第二篇 身份驗證 .net core使用ocelot 第三篇 日誌記錄 .net core使用ocelot 第四篇 限流熔斷 .net core使用ocelot 第五篇 服務質量 本文介紹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的負載均衡模塊,它還有服務發現的功能,具體下文講解。