架構的關鍵是什麼?
架構就是取捨,進而架構師就是作出取捨的人。你們都認同,作架構的人的特徵之一應該是「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章微服務架構的重構策略
免費獲取方式:點贊一下這篇文章+關注我,掃碼獲取!