我正在開發(fā)一項(xiàng)服務(wù)(用 Go 編寫),預(yù)計會收到大量請求。根據(jù)架構(gòu),服務(wù)的每個 Pod 都應(yīng)該為特定的客戶端提供服務(wù)。比方說,如果該服務(wù)有 3 個 pod,則分割將類似于 -> A-H, I-P, Q-Z,其中每個字母都是客戶姓名的第一個字母。但如果這個服務(wù)有 4 個 pod,那么 split 可以是 -> A-F, G-N, O-U, V-Z。有沒有辦法我可以在 Go 代碼中知道還有多少個其他副本?PS:據(jù)我所知,一種可能性是有一個environment variablein deployment.yaml. 但有一些方法可以在不改變yaml.
1 回答

明月笑刀無情
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個贊
根據(jù)標(biāo)題,解決方案是使用StatefulSet
每個服務(wù)相互了解的地方,并且可以以處理這種情況的方式編寫應(yīng)用程序。
然而,對于這個問題,根據(jù)提到的細(xì)節(jié),一個不使用的好的解決方案StatefulSet
是創(chuàng)建一個Service
帶有sessionAffinity: ClientIP
.?根據(jù)詳細(xì)信息的要求是,后續(xù)請求必須發(fā)送到為前一個請求提供服務(wù)的特定 Pod。這可以使用sessionAffinity
字段進(jìn)行配置。當(dāng)新客戶端連接時,將在執(zhí)行負(fù)載平衡后service
選擇一個。pod
發(fā)布該內(nèi)容后,所有后續(xù)請求都將僅針對該內(nèi)容pod
。可以使用 進(jìn)一步配置SessionAffinityConfig
。
- 1 回答
- 0 關(guān)注
- 166 瀏覽
添加回答
舉報
0/150
提交
取消