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