https://github.com/fresh-tech-lab/fenix-study-group/issues/1
單體系統又稱「巨石系統 (Monolithic Application)」。
單體只是表明系統中主要的過程調用都是進程內調用,不會發生進程間的通訊。也就是說,對於所需資源,它都可以自給自足。
"單體"不代表該系統"不分層",還是可能 “水平分層” 與 “垂直分層”。也就是說可能會讓各層之間以不同形式的數據結構進行傳遞,或是功能、職責等拆分成許多模組。
單體的缺點在於:拆分之後的隔離與自治能力上的缺陷。如果任一個部分的程式碼過度消耗進程內的資源,造成的影響也將是全域性的、難以隔離的。
所有程式碼共享同一個進程內的資源,不能隔離也就無法做到單獨停止、更新、升級等等。所以,從可維護性來說,單體系統是不佔優勢的。
也會面臨難以技術異構的困難,也就是說,每個模組的程式碼都需要使用同一個程式語言、框架等技術去開發。
煙囪式架構 (Information Silo Architecture):
微內核架構 (Microkernel Architecture):
事件驅動架構 (Event-Driven Architecture):