架構的關鍵是什麼?
架構就是取捨,進而架構師就是做出取捨的人。大家都認同,做架構的人的特徵之一應該是“Independent”(獨立),這也是我選擇做獨立解決方案進而設計產品的重要原因。在我們看來,只有獨立才有可能讓我們在做架構設計時做出中立和獨特的方案。面對問題時,大多數人會希望有人可以給出“正確的”建議,但是多數時候,困擾人們的不是“什麼才是正確的”,而是“取捨之間”。
筆者推薦大家閱讀這份微服務架構設計模式PDF的理由:這是一本可以幫你在設計微服務架構時做出取捨的書,它能在你處理微服務相關問題左右為難的時候給你提供參考和建議。
這份PDF將使讀者對微服務架構、它的好處和弊端,以及應該何時使用微服務架構有一個很好的理解。書中描述瞭如何解決我們將面臨的眾多架構設計挑戰,包括如何管理分佈式數據,還介紹瞭如何將單體應用程序重構為微服務架構。但本書並不是鼓吹微服務架構的宣言。相反,它的內容圍繞著一系列模式進行展開。模式是在特定上下文中發生的問題的可重用解決方案。模式的優點在於,除了描述解決方案的好處之外,還描述了成功實施解決方案時必須克服的弊端和問題。根據我的經驗,在選擇解決方案時,這種客觀性會帶來更好的決策。我希望你會喜歡閱讀這本書,它會教你如何成功開發基於微服務架構的應用程序。
上面吹噓了這麼多,下面就讓我們一起來學習一下這份美國著名作家:克里斯 理查森所寫的微服務架構設計模式,這份PDF的免費獲取方式我放在了文末!
章節目錄
第1章逃離單體地獄
本章導讀:
- 單體地獄的特徵,如何藉助微服務架構逃離單體地獄
- 微服務架構的基本特徵,它的好處和弊端
- 開發大型複雜應用時,如何藉助微服務實現DevOps式開發風格
- 微服務架構的模式語言及為什麼使用它
第2章服務的拆分策略
本章導讀:
- 理解軟件架構,以及它為什麼如此重要
- 使用拆分模式中的業務能力模式和子域模式進行單體應用到服務的拆分
- 使用領域驅動設計中的限界上下文概念來分解數據,並讓服務拆分變得更容易
第3章微服務架構中的進程間通信
本章導讀:
- 通信模式的具體應用:遠程過程調用、斷路器、客戶端發現、自注冊、服務端發現、第三方註冊、異步消息、事務性發件箱、事務日誌拖尾、輪詢發佈者
- 進程間通信在微服務架構中的重要性
- 定義和演化API
- 如何在各種進程間通信技術之間進行權衡
- 使用異步消息對服務的好處
- 把消息作為數據庫事務的一部分可靠發送
第4章使用Saga管理事務
本章導讀:
- 為什麼分佈式事務不適合現代應用程序
- 使用Saga模式維護微服務架構的數據一致性
- 使用協同和編排這兩種方式來協調Saga
- 採用對策來解決缺乏隔離的問題
第5章微服務架構中的業務邏輯設計
本章導讀:
- 設計業務邏輯組織模式:事務腳本模式和領域建模模式
- 使用領域驅動設計的聚合模式設計業務邏輯
- 在微服務架構中應用領域事件模式
第6章使用事件溯源開發業務邏輯
本章導讀:
- 使用事件溯源模式開發業務邏輯
- 實現事件存儲庫
- 整合Saga和基於事件溯源的業務邏輯
- 使用事件溯源實現Saga編排器
第7章在微服務架構中實現查詢
本章導讀:
- 在微服務架構中查詢數據的挑戰
- 何時以及如何使用API組合模式實現查詢
- 何時以及如何使用CQRS模式實現查詢
第8章外部API模式
本章導讀:
- 設計能夠支持多種客戶端的API的挑戰
- 使用API Gateway模式和後端前置模式
- 設計和實現API Gateway
- 使用響應式編程來簡化API組合
- 使用GraphQL實現API Gateway
第9章微服務架構中的測試策略(上)
本章導讀:
- 微服務中有效的測試策略
- 使用模擬(mock)和樁(stub)對軟件中的元素執行隔離測試
- 使用測試金字塔確定測試工作的重點
- 對服務中的類執行單元測試
第10章微服務架構中的測試策略(下)
本章導讀:
- 在隔離環境中測試服務的技術。
- 使用消費者驅動的契約測試編寫快速且可靠的測試,用來驗證服務間的通信。
- 何時以及如何進行應用程序的端到端測試。
第11章開發面向生產環境的微服務應用
第12章部署微服務應用
第13章微服務架構的重構策略
免費獲取方式:轉發一下這篇文章+關注我,然後私信我【666】免費獲取!