您好,登錄后才能下訂單哦!
您可以讓 Kong 代理的 API 使用 ring-balancer , 通過添加包含一個或多個目標實體的upstream 實體來配置,每個目標指向不同的IP地址(或主機名)和端口。ring-balancer 將在不同的target之間平衡負載,并基于 uptream 配置對目標執(zhí)行健康檢查,使它們成為健康或不健康的,無論它們是否響應(yīng),ring-balancer 將只把流量路由到健康的target。
Kong 支持兩種健康檢查方式,可以單獨使用,也可以組合使用。
active checks:其中定期請求目標中的特定 HTTP 或 HTTPS 端點,并根據(jù)其響應(yīng)確定目標的健康狀態(tài);
健康檢查功能的目標是為給定的 Kong 節(jié)點動態(tài)地將 target 標記為健康或不健康。沒有集群范圍內(nèi)的健康信息同步,每個 Kong 節(jié)點分別確定其 target 的健康狀況。這是可以取到的,因為在給定的點上,一個 Kong 節(jié)點可能能夠成功地連接到一個目標,而另一個節(jié)點則無法到達。這樣第一個節(jié)點將認為它是健康的,而第二個則會將其標記為不健康,并開始將流量路由到upstream 的其他 target。
無論是主動探測(針對主動健康檢查)還是代理請求(針對被動健康檢查),都會生成用于確定目標是否健康的數(shù)據(jù)。請求可能會產(chǎn)生TCP錯誤、超時或HTTP狀態(tài)代碼?;诖诵畔ⅲ】禉z查器更新了一系列內(nèi)部計數(shù)器:
如果任何 “TCP failure”、“HTTP failure” 或 “timeout” 計數(shù)器達到其配置的閾值,則target 將被標記為不健康。
如果 “success” 計數(shù)器達到其配置的閾值,則 target 將被標記為健康。
如果一個 upstream 的所有 target 都是不健康,Kong 會將 upstream 的請求返回 503 Service Unavailable
。
健康檢查有兩種類型,分別是 Active health checks
和 Passive health checks
Active health checks 就是主動探測他們的健康狀態(tài)。當(dāng) upstream 實體啟用活動健康檢查時,Kong 將定期向 upstream 的每個 target 的配置路徑發(fā)出 HTTP 或 HTTPS 請求。這允許 Kong 根據(jù)探測結(jié)果自動啟用和禁用 balancer 中的 target 。
Active health checks 的周期性是可以被配置的,當(dāng) target 是健康還是不健康。如果其中一個的interval值設(shè)置為零,則在相應(yīng)的場景中禁用檢查。如果兩者都為零,則完全禁用活動健康檢查。
Passive health checks 是否基于由 Kong 代理的請求(HTTP/HTTPS/TCP)執(zhí)行檢查,而不生成額外的流量。當(dāng) target 變得無響應(yīng)時,被動健康檢查器將檢測到這一點,并將目標標記為不健康。Ring-balancer 將開始跳過這個 target ,因此不會有更多的流量被路由到它。
當(dāng)目標的問題解決,并準備再次接收流量時,Kong管理員可以手動通知health checker目標應(yīng)該再次啟用,通過一個Admin API端點:
$ curl -i -X POST http://localhost:8001/upstreams/my_upstream/targets/10.1.2.3:1234/healthy
HTTP/1.1 204 No Content
這個命令將廣播一個集群范圍的消息,以便將 “health” 狀態(tài)傳播到整個 Kong 集群。這將導(dǎo)致 Kong 節(jié)點重置在 Kong 節(jié)點的所有 worker 中運行的健康檢查器的健康計數(shù)器,從而允許環(huán)平衡器再次將流量路由到目標。
被動健康檢查的優(yōu)點是不會產(chǎn)生額外的流量,但它們不能自動將 target 重新標記為健康狀態(tài):“circuit is broken”,需要由系統(tǒng)管理員重新啟用目標。
Kong 支持使用 Prometheus 進行監(jiān)控數(shù)據(jù)采集,并且官方提供了采集方式和 Grafana 的Dashboard 模板
官方的 Kong Plugin Prometheus 會定期更新,看上去比較活躍。
除了官網(wǎng)以外,有網(wǎng)友也提供了一個監(jiān)控模板,不過最后一次更新時間是2018 年 5 月 17 日,之后就沒有更新了,大家也可以參考。kong-prometheus-plugin
Kong 的健康檢查主要介紹了健康檢查的類型,這兩類的健康檢查是可以打開和關(guān)閉的,打開和關(guān)閉的具體方法請參考官網(wǎng)文檔。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。