成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們聊聊DDD、SOA、微服務和微內核

開發 架構
微內核架構又叫插件化架構,包含兩類組件:核心系統(core system)和插件模塊(plug-in modules)。核心系統負責和業務無關的通用功能,例如模塊加載、模塊間通信等;插件模塊負責實現具體的業務邏輯,例如“學生信息管理”系統中的“手機號注冊”功能。

DDD、SOA、微服務和微內核,看到經常有人把這幾個概念拿出來一起講。事實上,DDD和其他三個不是一個維度的東西。

DDD其實特別好理解,DDD就是領域來驅動設計嘛,是一種設計思想。很容易又和OOA、OOD和OOP來比較了。這個回頭再說。

SOA、微服務和微內核都是架構風格,DDD里能和他們三個放在一起比較的是四層架構和六邊形架構。

四層架構

四層架構長這樣:

圖片圖片

分為用戶接口層、應用層、領域層和基礎層,四層架構目的是為了解耦,下層不依賴上層,從依賴關系上講,四層架構的箭頭是反過來的。

目前這個架構,在現代系統中,通常用作項目工程模塊的設計。就是說更傳統的MVC逐漸被淘汰,目前主流就是這種四層架構。有的項目工程會先用限界上下文劃分子域,再用四層架構。然后代碼結構長這樣:

├─interfaces   API接口層
│   ├─dto     視圖模型,數據模型定義 vo/dto(大多數情況是一樣的)
│   └─controller   控制器,對外提供(Restful)接口
│ 
├─application   應用層
│   ├─service  應用服務,非核心服務 
│   └─***      others
│ 
├─domain   領域層
│   ├─entity        領域實體、聚合根,充血的領域模型 
│   ├─valueobject        領域值對象       
│   └─service  領域服務類,一些不能歸屬某個具體領域模型的行為
│ 
├─infrastructure  基礎設施層
│   ├─po           持久化對象 
│   ├─repository 倉儲類,持久化接口&實現,可與ORM映射框架結合
│   ├─dao         數據訪問對象 
│   ├─client       feign等調用客戶端 
└─  └─factory    工廠類,負責復雜領域對象創建,封裝細節

底層實體采用充血模型,有一些聚合,形成聚合根。與存儲層的交互封裝在倉庫中,用DDD工廠來管理倉庫。上層會將實體轉換成貧血模型再暴露出去。你們項目的結構,架構師是不是這樣定義的?

六邊形架構

六邊形架構很多文章作者把這個架構分成幾層,這些都是加上了作者個人的理解。實際上六邊形架構又叫洋蔥形架構很簡單,就是個端口適配器模式。外六邊形是技術域,內六邊形是業務域。這個常用于一些整體架構中。比如說基于一些基礎組件做二次開發。真正的業務實現是組件實現的,有一些專門的維護人員。但是團隊中往往會有更多成員在做封裝接口暴露給公司內的用戶,做高可用或者自動化運維這些通常所說的外層。這個外層就是六邊形架構里技術域解決的問題。

圖片圖片

SOA和微服務架構

SOA的出現是為了解決功能復用的問題,將一些共通的模塊提取出來做成服務。這個我之前在開發中發現不好用,僅次于單體應用時各個模塊引入一個common的jar包。因為這些共通的模塊很可能適應不了各方面的需求,上層的需求總有一些差異。這樣的情況下,這個共通模塊就不太好維護了。

服務化的概念使得上世紀就已經產生的DDD得到了大家的關注。因為DDD解決了怎么服務化的問題,就是劃分領域。微服務就是服務化之后劃分粒度的問題了。

微內核架構

微內核架構又叫插件化架構,包含兩類組件:核心系統(core system)和插件模塊(plug-in modules)。核心系統負責和業務無關的通用功能,例如模塊加載、模塊間通信等;插件模塊負責實現具體的業務邏輯,例如“學生信息管理”系統中的“手機號注冊”功能。

核心系統(Core System)功能一般比較穩定,不會由于業務擴展而不斷修改,插件模塊需要根據業務功能的發展不斷地擴展。微內核的架構本質是將變化部分封裝在插件里,從而實現快速靈活擴展的目標,而同時又不影響整體系統的穩定。常見的例子有:Eclipse IDE、Spring、Dubbo。

我做過一個配置化項目。把業務流程劃分成模塊,會不斷有新業務接入進來,很多模塊都可以復用。比如業務A需要a\b\c三個模塊,業務B需要a\c\d\e四個模塊,那新業務進來只需要進行模塊流程的配置。如果需要的模塊沒有,那就以插件的形式集成進來再進行配置。我們稱這個服務采用的是微內核架構,目的就是要讓大家把新功能的開發做插件式開發,避免對舊功能的影響,提高系統的穩定性。


責任編輯:武曉燕 來源: 編程一生
相關推薦

2025-02-10 02:20:00

微服務SOA架構

2023-01-04 11:41:31

微服務SOA架構

2025-03-17 11:21:08

APISwagger界面

2023-06-20 07:27:07

架構組件插件

2017-08-18 14:47:31

DDD微服務架構

2018-05-04 14:34:06

微服務SOAAPI

2018-12-06 14:56:46

微服務隔離熔斷

2023-11-06 08:26:11

Spring微服務架構

2021-02-07 09:05:56

微服務結構云原生

2024-07-29 08:24:43

2023-11-24 07:16:10

DDD微服務

2023-12-15 09:57:13

微服務鏈路服務

2021-07-20 08:03:43

微服務應用程序

2021-07-26 08:10:24

微服務單體架構

2018-05-09 08:18:26

微服務改造架構

2023-01-29 09:06:24

微服務劃分關聯

2022-03-29 08:30:15

微服務架構單體架構

2021-11-15 11:05:27

DDD微服務Java

2022-11-02 08:31:53

BFF架構App

2020-12-28 08:51:06

操作系統微內核Dubbo
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 蜜臀网 | 97色综合 | 二区在线观看 | 日韩国产中文字幕 | 欧美成视频在线观看 | 毛片久久久 | 成人精品一区二区三区中文字幕 | 国产精品美女一区二区 | 亚洲综合色视频在线观看 | 欧美一级小视频 | 精品在线一区 | 日韩视频一区二区 | 亚洲精品久久久蜜桃网站 | 亚洲欧美成人在线 | 免费一级黄色 | 一区二区成人 | 久久精品国产亚洲 | 99精品国产一区二区三区 | 亚洲成人免费 | 在线观看中文视频 | jizjizjiz中国护士18 | www.日日操| 久久精品中文字幕 | 91xxx在线观看 | 欧美精品电影一区 | 精品在线一区二区三区 | 日韩在线视频一区 | 天天拍天天射 | 在线日韩视频 | 免费在线观看一区二区三区 | 中文字幕成人免费视频 | 四虎免费视频 | 91成人| 欧美一区二区三区四区视频 | 精品国产一区二区三区久久久久久 | 欧美日韩在线一区二区三区 | 麻豆成人在线视频 | 99re6在线视频 | 国产亚洲精品a | 日韩欧美一区二区三区免费观看 | 久久精品成人热国产成 |