更新時(shí)間:2022-12-22 來源:黑馬程序員 瀏覽量:
針對(duì)傳統(tǒng)的單體架構(gòu)存在的問題,后來出現(xiàn)了一種SOA架構(gòu)。
SOA架構(gòu)是一個(gè)面向服務(wù)的架構(gòu),它是一個(gè)組件模型。SOA架構(gòu)將應(yīng)用程序的不同功能單元(稱為服務(wù))進(jìn)行拆分,并通過在這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進(jìn)行定義的,它獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以使用一種統(tǒng)一和通用的方式進(jìn)行交互。
SOA架構(gòu)將原來的單體架構(gòu)按照功能細(xì)分為不同的子系統(tǒng),SOA架構(gòu)如下圖所示。
SOA架構(gòu)圖
由上圖可知,一個(gè)完整的項(xiàng)目會(huì)分為多個(gè)模塊,并且數(shù)據(jù)庫(kù)也會(huì)有主庫(kù)與從庫(kù)兩種,并且主庫(kù)與從庫(kù)是數(shù)據(jù)同步的,這樣的SOA架構(gòu)解決了1.1.1小節(jié)中單體式架構(gòu)所遺留下的問題,但SOA本身也存在一些缺點(diǎn)。
SOA一般使用某種集中式管理,比如會(huì)有審查委員會(huì)、主架構(gòu)師或架構(gòu)委員會(huì)等部門來嚴(yán)格定義每個(gè)系統(tǒng)組件應(yīng)當(dāng)做什么,如何執(zhí)行,相同類型的功能可能會(huì)在多個(gè)組件中分別定義和記錄,每個(gè)組件使用的語言或者工具集可以是統(tǒng)一的,也可以不是。在SOA架構(gòu)中,系統(tǒng)和服務(wù)的界定比較模糊,而且服務(wù)的接口協(xié)議不固定,種類繁多,不利于系統(tǒng)維護(hù)。