微服務解耦設計模式 - Neeraj
如果你正在開發一個大型的、複雜的應用程式,或者正在拆除一個單體的應用程式,你應該考慮微服務架構。微服務架構將一個應用結構為一系列鬆散耦合的服務。微服務旨在通過實現持續交付和部署來加速軟體開發。
在微服務下,有兩種型別的專案。
- 棕地專案--它指的是在現有或遺留系統的背景下開發和部署一個新的軟體系統。因此,將一個單體應用轉換為微服務就屬於這個專案。
- 綠地專案 - 這涉及到為一個全新的環境從頭開始建立一個系統,沒有任何遺留程式碼可供利用。當你從零開始,沒有任何限制或依賴性時使用的一種方法。
按子領域模式分解
領域驅動設計(DDD)方法是一種建立複雜軟體應用程式的方式,它是基於物件導向的領域模型的開發。DDD為每個子域定義了單獨的領域模型。每個子域都屬於一個領域。識別子域與識別業務能力的過程相同,即分析業務和識別專業領域。最有可能的是,最終的結果將是業務熟悉的子域。領域模型的範圍在DDD中被稱為有界上下文。有界上下文包括實現模型的程式碼工件。
子域可以分類如下
- 核心--企業最大的差異化因素,也是應用中最有價值的部分。
- 支援 - 不是一個差異化因素,但與企業提供的服務有關。通常是內部實施或外包。
- 通用 - 不針對業務,最好使用現成的軟體來實施。
這種模式有以下好處
- 子域是相對穩定的,所以架構是穩定的。
- 我們的開發團隊是跨職能的、自主的,並且專注於交付業務價值而不是技術功能。
- 服務是鬆散的耦合和內聚的。
將單體應用分解為微服務時面臨的挑戰
在分解單體應用時,可能會出現一些挑戰。
- 網路延遲--在一個分散式系統中,網路延遲是一個持續的問題。你可能會發現,對服務的特定分解會導致兩個服務之間出現大量的往返次數。
- 保持跨服務的資料一致性 - 每個服務都會有自己的資料庫,所以保持跨服務的資料一致性會很困難。
- 上帝類--上帝類是控制系統中太多其他物件的物件,它超越了邏輯,成長為做所有事情的類。由於其規模和複雜性,它是一個集中了系統智慧的類,並使用其他類的資訊。
Strangler模式
當把傳統的單體應用遷移到微服務架構中時,會使用Strangler模式。通過使用這種模式,單體應用可以通過用新的服務取代特定的功能而逐步轉變。一旦新的服務準備就緒,舊的元件就會被扼殺,新的服務就會投入使用,而舊的元件就會退役。
相關文章
- 微服務設計模式(上)微服務設計模式
- 微服務設計模式(下)微服務設計模式
- 使用Materialise解耦微服務架構解耦微服務架構
- 微服務架構和設計模式 - DZone微服務微服務架構設計模式
- 詳解command設計模式,解耦操作和回滾設計模式解耦
- 複雜任務中,流程的解耦設計解耦
- 使用Materialise物化檢視解耦微服務架構解耦微服務架構
- 架構設計思想-微服務架構設計模式架構微服務設計模式
- 微服務中的Sidecar設計模式解析微服務IDE設計模式
- 一起玩轉微服務(3)——微服務架構設計模式微服務架構設計模式
- [翻譯]微服務設計模式 - 3. 按業務功能拆分模式微服務設計模式
- Java設計模式-16、命令模式-請求傳送者與接收者解耦Java設計模式解耦
- 微服務設計中的API閘道器模式微服務API模式
- 架構設計:微服務模式下,實現灰度釋出模式架構微服務模式
- [翻譯]微服務設計模式 - 1. 單體應用模式微服務設計模式
- 《微服務架構設計模式》讀書筆記 | 第5章 微服務架構中的業務邏輯設計微服務架構設計模式筆記
- 前端微服務化解決方案3-工程設計模式前端微服務設計模式
- 微服務設計指南微服務
- Objective-C設計模式——中介者Mediator(物件去耦)Object設計模式物件
- 微服務架構:如何用十步解耦你的系統?微服務架構解耦
- Redis如何簡化實現微服務的設計模式 – thenewstackRedis微服務設計模式
- 分散式系統解耦模式:用事件代表時間觸發Cron計劃任務分散式解耦模式事件
- 《微服務架構設計模式》讀書筆記 | 第8章 外部API模式微服務架構設計模式筆記API
- Salesforce構建可觀察微服務的五種設計模式Salesforce微服務設計模式
- 架構設計 | 基於Seata中介軟體,微服務模式下事務管理架構微服務模式
- Spring Boot Event 觀察者模式,輕鬆實現業務解耦!Spring Boot模式解耦
- [翻譯]微服務設計模式 - 5. 服務發現 - 服務端服務發現微服務設計模式服務端
- Spring:工廠模式哪裡解耦了?Spring模式解耦
- java springcloud 微服務設計方案JavaSpringGCCloud微服務
- 微服務可用性設計微服務
- 使用SpringBoot+PostgreSQL物化檢視實現微服務設計模式 - vinsguruSpring BootSQL微服務設計模式
- 詳細解讀微服務的兩種模式微服務模式
- 《微服務架構設計模式》讀書筆記 | 第3章 微服務架構中的程式間通訊微服務架構設計模式筆記
- 《微服務架構設計模式》讀書筆記 | 第9章 微服務架構中的測試策略(上)微服務架構設計模式筆記
- 《微服務架構設計模式》讀書筆記 | 第7章 在微服務架構中實現查詢微服務架構設計模式筆記
- 微服務設計學習(一)關於微服務和如何建模服務微服務
- AndroidLifecycle對MVP模式進一步”解耦“AndroidMVP模式解耦
- 設計模式 - 代理模式詳解設計模式