logo

高可用部署

同個服務多開幾個實例,請求自動分流,單點當機也不中斷

PanPan
高可用部署

我們很高興宣布,Zeabur 現已支援高可用部署(High Availability)。只要把實例數量調高,同個服務就會同時跑好幾份,請求進來時自動分流——單一實例當掉也不會中斷服務。

高可用是什麼?

簡單來說,高可用就是讓同一個服務同時多開好幾個實例(instance)。請求進來時,Zeabur 會自動把它分配到其中一個實例上處理。

使用者請求Zeabur自動分流實例 1 · 正常實例 2 · 正常實例 3 · 當機

實例 3 當掉時,Zeabur 會自動把流量改送到實例 1、2,服務不中斷。

這樣做有兩個明顯的好處:

  • 單點故障不再中斷服務:某個實例當掉時,其他實例會立刻頂替,使用者幾乎無感。
  • 負載更平均:請求平均分散到每個實例,不會出現單一實例被打爆、其他卻閒著的情況。

如何使用?

1. 調整 Replicas 數量

在服務設定中把 Replicas(實例數量) 調到 2 以上,Zeabur 就會自動多開對應數量的實例並開始分流。

設定 Replicas 數量

2. 查看每個 Pod 的狀態

在 Zeabur Dashboard 上,你可以看到每一個 Pod(實例)的即時狀態,掌握它們是否都正常運行。

每個 Pod 的狀態

3. 驗證請求被分散到不同實例

連續打幾次 API,會發現請求被分配到不同的實例上處理——這正是負載平衡在運作的證據。

bash
$ curl https://your-service.zeabur.app/
I'm service-6a3ca3e3b0b8a7a4b0863e66-7fd4658d88-2mk9t!
 
$ curl https://your-service.zeabur.app/
I'm service-6a3ca3e3b0b8a7a4b0863e66-7fd4658d88-jwhnx!
 
$ curl https://your-service.zeabur.app/
I'm service-6a3ca3e3b0b8a7a4b0863e66-7fd4658d88-2mk9t!
 
$ curl https://your-service.zeabur.app/
I'm service-6a3ca3e3b0b8a7a4b0863e66-7fd4658d88-64sw5!

每次回應來自不同的 Pod 名稱,代表請求確實被分散到不同實例上。

接下來的計劃

目前 TerminalFiles 還無法指定要連線到哪一個 Pod。我們近期會繼續完工,讓你能精準連到指定的實例做除錯與檢查。

如果你很期待這個功能,歡迎到 Zeabur Support 的 Roadmap 上幫我們 +1!你的回饋會直接影響我們的開發排序。

有任何問題,也歡迎隨時到 Zeabur Support 找我們聊聊。