# 微服務架構設計 - 隔板 Bulkhead Pattern
# 前言
Bulkhead 的概念發自於建造船舶,一艘船遊隔板進行隔間 (完全隔離與水密),這樣即使船身受損也可以透過這樣的隔板來將水限制在一定容積內,避免船隻沉沒。
# 軟體工程中的 Bulkhead
同樣的,在軟體工程微服務中,我們有很多服務單元在交互作用,使用隔板模式我們可以對於不同的服務單元將來自不同的 Thread Pool ,降低異常呼叫造成的應用程式 Crash 風險
# Thread Pool?
Thread Pool 可以當作不同服務單元之間的隔板,每個遠端呼叫都是被隔離的並分到一個 Thread Pool ,如果該 Thread Pool 上的服務發生 Time out 那 Thread Pool 這時就會自主飽和並且停止處理 Request,算是一種根據壓力避免繼續受壓的模式,可以有效的避免所有服務單元一起 Crash。
# 參考資料
- 書籍 - 微服務開發指南|使用 Spring Cloud 與 Docker