我們知道,在單體應用的架構下一旦程序發生了故障,那麼整個應用可能就沒法使用了,所以我們要把單體應用拆分成具有多個服務的微服務架構,來減少故障的影響範圍。但是在微服務架構下,有一個新的問題就是,由於服務數變多了,假設單個服務的故障率是不變的,那麼整體微服務系統的故障率其實是提高了的。
比如:假設單個服務的故障率是0.01%,也就是可用性是99.99%,如果我們總共有10個微服務,那麼我們整體的可用性就是99.99%的十次方,得到的就是99.90%的可用性(也就是故障率為0.1%)。可見,相對於之前的單體應用,整個系統可能發生故障的風險大幅提升。
那麼在這種情況下,我們應該怎麼去保證微服務架構的可用性呢?