Bumblebee微服务网关之负载策略
作為一個微服務網關,提供不同負載策略配置是一項非常重要的主要功能;在這方向Bumblebee提供了非常好的支持。Bumblebee可以針對不同路徑制定各自的負載策略,更重要的是這些調整都可以在網關運行過程動態調整!動態策略調整可以更好的應對不同的特發狀況,并可以更好的調配負載資源來應對當前的特發情況。在負載上Bumblebee提供了平均和一致性等負載方案,可以更好地制定不同的并發應用需求。
制定路徑策略
路徑策略是通過正則來描述一個請求路徑,組件會優先長正則配匹。
以上定義了一個^/api.*負載規則,只要是匹配以上規則的所有API請求都會分配到http://localhost:58387/服務上,而其他請求則分配給http://192.168.2.26:9090/;接下來分別訪問一下/json,/api/Index和/api/hello,看一下它們的訪問日志記錄情況.
通過組件記錄的日志來看,所有/api/的請求都分發到http://localhost:58387/而其他則分發給http://192.168.2.26:9090/
服務負載
應用中往往需要多個服務來處理并發業務,這個時候就存在服務負載的問題;組件提供了權重和一致性等方讓用戶根據情況來制定不同的服務負載決策。
以上配置是所有服務的權重都是零,所以由三個服務平均負載所有請求??梢酝ㄟ^多次訪問/json看一下訪問記錄分配情況:
權重分配
由于資源的分配往往不是平均的,所以在實際應用也需要依據服務所擁有的資源多少來配置不同的負載比例。
以上配置是http://192.168.2.26:9090/并發分配比例是66%,http://192.168.2.25:9090/分配比例則是33%;由于http://192.168.2.27:9090/分配的權重為零所以不參與分配。接下來多次訪問/json看一下訪問記錄分配情況:
零權重
一般情況下零權重是不參與負載,但當有權重的服務不可用的時候,那零權重的服務則會提升上來進行處理;因此零權重的服務更多用于備用服務。
以上是把有權重的服務關閉了,訪問/json看一下訪問記錄分配情況:
一致性分配
有些情況需要把同一路徑或不同用戶一致性到服務上,這樣可以確保這些請求都會被分配到一個服務中。
以上設置了url作為一致分配規則,接下來多次訪問/json,/employees,/orders和/hello看一下訪問記錄分配情況:
一致性配置規則
一致性配置規則如下:host|url|baseurl|(h:name)|(q:name)
host獲取請求頭的Host信息作為一致性依據
url獲取整個請求url信息作為一致性依據
baseurl獲取基礎url信息作為一致性依據
(h:name)?獲取某個頭部信息作為一致性依據
(q:name)?獲取某個QueryString值作為一致性依據
總結
以上是生活随笔為你收集整理的Bumblebee微服务网关之负载策略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#刷遍Leetcode面试题系列连载(
- 下一篇: Magicodes.IE已支持导出Wor