# 微服務架構設計 - 隔板 Bulkhead Pattern


# 前言

Bulkhead 的概念發自於建造船舶,一艘船遊隔板進行隔間 (完全隔離與水密),這樣即使船身受損也可以透過這樣的隔板來將水限制在一定容積內,避免船隻沉沒。


# 軟體工程中的 Bulkhead

同樣的,在軟體工程微服務中,我們有很多服務單元在交互作用,使用隔板模式我們可以對於不同的服務單元將來自不同的 Thread Pool ,降低異常呼叫造成的應用程式 Crash 風險


# Thread Pool?

Thread Pool 可以當作不同服務單元之間的隔板,每個遠端呼叫都是被隔離的並分到一個 Thread Pool ,如果該 Thread Pool 上的服務發生 Time out 那 Thread Pool 這時就會自主飽和並且停止處理 Request,算是一種根據壓力避免繼續受壓的模式,可以有效的避免所有服務單元一起 Crash。


# 參考資料

  • 書籍 - 微服務開發指南|使用 Spring Cloud 與 Docker
更新於