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

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