單體式應用程式

维基百科,自由的百科全书
跳到导航 跳到搜索

單體式應用程式(英語:Monolithic application)是一種軟體設計結構,這不一定要是一種「應用程式」,因為這種概念也能夠應用在網路服務上。一個單體式應用程式裡面有許多的邏輯、服務(如:使用者服務、文章服務、留言服務),並且都有密不可分的關係。一旦其中一個服務不可用時,就會造成另一個服務也無法使用,因此也常被拿來當作微服務結構的對比,因為微服務獨立、自主,並不會有像單體式應用程式這樣的問題。

在程式進行時,單體式應用程式通常會循序執行,異步執行的時機較少(不是絕對的)。像是部分應用程式中在安裝畫面時可能導致介面卡死,按下「取消」按鈕毫無反應,就是因為以非異步執行所產生的緣故。

好處[编辑]

單體式應用程式的結構規劃十分簡潔,因為服務與服務之間可以直接有所牽連,如:文章服務可以直接呼叫使用者服務。在這方面並沒有太多的忌諱,所以開發時程在起步時也能夠大幅減少。

壞處[编辑]

由於單體式應用程式就像一個大型容器一樣,裡面擺置了許多服務,且他們都是密不可分的,這導致應用程式在擴展時必須以「應用程式」為單位。這意味著當裡面有個服務特別吃重(負載過高)時,並不能夠單獨擴展該服務,必須擴展整個應用程式,這可能導致額外的資源浪費。此外,單體式應用程式由於服務之間的緊密度、相依性過高,這將導致測試、升級有所困難,且開發曲線有可能會在後期大幅度地上升,令開發不易。相較之下微服務結構能夠解決這個問題。

延伸閲讀[编辑]