微服務架構設計模式
《微服務架構設計模式》,[美] 克里斯·理查森(Chris Richardson) 著,喻勇 譯,出版社: 機械工業出版社。
截至2022年,機械工業出版社年出版新書近2700種,年引進和輸出版權總量近800種,產品橫跨科技出版、教育出版、大眾出版三大板塊,覆蓋機械、電工電子、汽車、建築、計算機、經管、心理[1]、生活、科普、藝術設計、文創等十多個專業領域,以及高等教育[2]、職業教育、技能教育等不同教育層次。
目錄
內容簡介
成功地開發基於微服務架構的應用軟件,需要掌握一系列全新的架構思想和實踐。在這本獨特的書籍中,世界十大軟件架構師之一、微服務架構先驅Chris Richardson收集、分類並解釋了44個架構設計模式,這些模式用來解決諸如服務拆分、事務管理、查詢和跨服務通信等難題。
本書的目標是讓架構師和程序員學會使用微服務架構成功開發應用程序。
書中不僅討論了微服務架構的好處,還描述了它們的弊端。讀者將掌握如何在使用單體架構和使用微服務架構之間做出正確的權衡。
【誰應該閱讀本書】
本書的重點是架構和開發,適合負責開發和交付軟件的任何人(例如開發人員、架構師、CTO 等)閱讀。
本書側重於解釋微服務架構的設計模式和其他概念。無論讀者使用何種技術棧,我的目標都是讓你們可以輕鬆讀懂這本書。你只需要熟悉企業應用程序架構和設計的基礎知識即可。特別是,需要了解三層架構、Web 應用程序設計、關係型數據庫、使用消息和基於 REST 的進程間通信,以及應用程序安全性的基礎知識等概念。本書的代碼示例使用 Java 和 Spring 框架。為了充分利用它們,讀者應該對 Spring 框架有所了解。
【本書內容安排】
本書由13章組成。
●第1章描述了所謂「單體地獄」的症狀,當單體應用程序超出其架構時會出現這種問題,這可以通過採用微服務架構來規避。這一章還概述了微服務架構模式語言,這也是本書大部分內容的主題。
●第2章解釋了為什麼軟件架構很重要,描述了可用於將應用程序分解為服務集合的模式,並解釋了如何克服在此過程中遇到的各種障礙。
●第3章介紹了微服務架構中強大的進程間通信的幾種模式,解釋了為什麼異步和基於消息的通信通常是最佳選擇。
●第4章介紹如何使用 Saga 模式維護服務間的數據一致性。Saga 是通過傳遞異步消息的方式進行協調的一系列本地事務。
●第5章介紹如何使用領域驅動設計(DDD)的聚合和領域事件等模式為服務設計業務邏輯。
●第6章以第5章為基礎,解釋了如何使用事件溯源模式開發業務邏輯,事件溯源模式是一種以事件為中心的設計思路,用來構建業務邏輯和持久化領域對象。
●第7章介紹如何使用API組合模式或命令查詢職責隔離(CQRS)模式,這兩個模式用來實現查詢分散在多個服務中的數據。
●第8章介紹了處理來自各種外部客戶端請求的外部 API 模式,例如移動應用程序、基於瀏覽器的 JavaScript 應用程序和第三方應用程序。
●第9章是關於微服務自動化測試技術的兩章中的第一章,介紹了重要的測試概念,例如測試金字塔,描述了測試套件中每種測試類型的相對比例,還展示了如何編寫構成測試金字塔基礎的單元測試。
●第10章以第9章為基礎,描述了如何在測試金字塔中編寫其他類型的測試,包括集成測試、消費者契約測試和組件測試等。
●第11章介紹了開發生產就緒服務的各個方面,包括安全性、外部化配置模式和服務可觀測性模式。服務可觀測性模式包括日誌聚合、應用指標和分布式追蹤。
●第12章介紹了可用於部署服務的各種部署模式,包括虛擬機、容器和 Serverless 模式。還介紹了使用服務網格的好處,服務網格是在微服務架構中處理服務間通信的一個網絡軟件層。
●第13章介紹了如何通過採用絞殺者(Strangler)模式逐步將單體架構重構為微服務架構,絞殺者模式是指以服務形式實現新功能,從單體中提取模塊將其轉換為服務。
在學習這些章節的過程中,讀者將了解微服務架構的不同方面。
參考文獻
- ↑ 談心理健康教育對學生的重要性 ,搜狐,2020-04-12
- ↑ 2020中國高等教育十大關鍵詞,搜狐,2020-12-28