- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務機構(gòu):新網(wǎng)數(shù)碼
自從做了一些平臺化系統(tǒng)之后,發(fā)現(xiàn)最原始的抽象,建模,分層,內(nèi)聚,低耦合,面向?qū)ο笞兊迷絹碓街匾耍械臅r候技術就是這樣,那些最本質(zhì),最樸實的東西,有種返璞歸真的感覺,當然其他很多事情也一樣,因為不管是技術,架構(gòu)還是其他事情,我們都是要去提出問題并解決問題的,而將問題劃分成小的問題去解決是最重要的方法論。
說到軟件架構(gòu)模式,什么是軟件架構(gòu)模式呢?
軟件架構(gòu)模式指的是那些被驗證了的,經(jīng)歷過復雜性洗禮的,具有良好的設計結(jié)構(gòu)的系統(tǒng)。也就是在實踐過程中歸納總結(jié)出的一套設計決策,具有明確的定義和屬性,可以重復使用,提高效率,降低復雜度和心智負擔。
那么市面上有哪些值得實踐的軟件模式呢?
1、微內(nèi)核模式
2、微服務模式
3、分層架構(gòu)模式
4、事件驅(qū)動模式
5、空間架構(gòu)模式
微內(nèi)核模式
微內(nèi)核也稱為插件模式,允許業(yè)務方可以將其他應用程序邏輯以插件方式,添加到核心應用邏輯中,從而實現(xiàn)了可擴展性,做到了核心邏輯和業(yè)務邏輯的功能分離。
這也是我們做平臺化系統(tǒng)中首先想到的一點,平臺沉淀那些通用的邏輯,流程,規(guī)則。個性化的業(yè)務邏輯以插件方式集成到平臺上,個性化邏輯在插件內(nèi)自組織,自流轉(zhuǎn),實現(xiàn)了平臺和業(yè)務的隔離。
微內(nèi)核模式包含兩部分:核心系統(tǒng)和插件模塊。
1、 核心系統(tǒng):提供程序功能和自定義處理邏輯的擴展能力,具有靈活性,擴展性和隔離性
2、一般微內(nèi)核模式的核心系統(tǒng)只包含系統(tǒng)運行所需的最小功能
微內(nèi)核最佳的示例是來源于Eclipse IDE,我們系統(tǒng)變成微內(nèi)核架構(gòu)需要具備以下的一些特點:
1、靈活性和擴展性
2、運行插件可以在運行時加載和卸載
3、操作便捷
4、易于部署
5、插件可以獨立進行測試
6、高性能,簡化應用程序所需功能
微服務模式
隨著微服務的流程,我們會將原有的一體架構(gòu)拆成微服務架構(gòu),一組微服務實現(xiàn)某一個邏輯上的業(yè)務能力。微服務自身具有獨立的功能職責,團隊可以就具體的微服務進行開發(fā)測試,微服務之間通過通信完成信息交互。
我們在平臺化架構(gòu)中,還是將具體的功能方向的服務進行進一步抽象,變成獨立的微服務,多個微服務在邏輯上組成了平臺的某個業(yè)務能力。
相信大家對于微服務都比較熟悉了,就不再贅述了,微服務的優(yōu)點如下:
1、可以獨立編寫,維護和部署
2、易于擴展,業(yè)務迭代只需修改對應的微服務
3、因為微服務相對隔離,不會影響其他業(yè)務,實現(xiàn)解耦
4、團隊響應迅速
5、可獨立測試,部署,迭代效率高
分層架構(gòu)
軟件架構(gòu)被水平的分成多層,每層具有獨立的職責。大多數(shù)架構(gòu)常用的架構(gòu)模式就是分層了,從最開始接觸的三層架構(gòu),到后期的MVC,MVP架構(gòu),都透漏著分層的影子。
分層架構(gòu)要求每一層具有特定的角色和職責,比如負責顯示的顯示層可以處理用戶交互邏輯。業(yè)務邏輯層主要負責請求邏輯和數(shù)據(jù)之間的組合和處理規(guī)則。
分層架構(gòu)要求每一層處理該層相關的邏輯,我們在平臺化系統(tǒng)中的分層更加抽象,不再是以具體的業(yè)務進行劃分,而是按照抽象的能力劃分成多個層了。
分層架構(gòu)的優(yōu)點:
1、可測試性,每層可獨立測試
2、易于開發(fā),由于功能相對隔離,開發(fā)比較簡單,但是需要防止同一層之間的能力過于分散,可以引入領域的方式進行二次隔離
3、每次功能點可以修改獨立的一層即可完成
事件驅(qū)動模式
這是一種高擴展的解決方案,架構(gòu)中通過監(jiān)聽并異步處理事件方式組成一系列組件。事件驅(qū)動模式構(gòu)建了一個接收所有數(shù)據(jù)的中央處理單元,之后將事件委托給特定事件類型的模塊單獨處理。
事件驅(qū)動多用于平臺架構(gòu)中非業(yè)務相關的功能,通過事件監(jiān)聽與處理實現(xiàn)了進一步解耦,多用于數(shù)據(jù)流驅(qū)動或是用戶界面交互。
事件驅(qū)動的優(yōu)點是:
1、 可以通過事件解耦,適應混亂環(huán)境
2、具有彈性能力
3、當出現(xiàn)新的事件時,容易擴展
空間架構(gòu)模式
空間架構(gòu)模式多用于解決軟件系統(tǒng)的伸縮性和并發(fā)性問題。對于用戶量經(jīng)常發(fā)生變化,偶爾出現(xiàn)并發(fā)的系統(tǒng),可以采用這種架構(gòu)。通過消除對于數(shù)據(jù)庫的依賴,使用復制基于內(nèi)存的數(shù)據(jù)實現(xiàn)伸縮性。
空間架構(gòu)模式主要是希望通過多個服務器之間拆分處理和存儲數(shù)據(jù),避免高負載下軟件系統(tǒng)的崩潰。
優(yōu)點:
1、可以快速適應變化
2、通過內(nèi)存中數(shù)據(jù)訪問內(nèi)置的緩存,實現(xiàn)了高性能
3、高伸縮性來源于降低了對集中數(shù)據(jù)庫的依賴,或是沒有依賴,提高了伸縮性
4、空間架構(gòu)可以看作是一種圍繞于數(shù)據(jù)源的異構(gòu),無狀態(tài)的處理方式。
以上幾種架構(gòu)可以按需使用到系統(tǒng)之中,以解決不同的問題。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP