微服務(wù)架構(gòu)設(shè)計模式
鏈接:pan.baidu.com/s/1ViQCUooXBTvk_wToep_ZJw?pwd=cra0?
提取碼:cra0

本書由世界十大軟件架構(gòu)師之一、微服務(wù)架構(gòu)的先驅(qū)、Java開發(fā)者社區(qū)的意見領(lǐng)袖Chris Richardson親筆撰寫,旨在幫助架構(gòu)師和程序員學(xué)會使用微服務(wù)架構(gòu)成功開發(fā)應(yīng)用程序。書中描述了如何解決我們將面臨的眾多架構(gòu)設(shè)計挑戰(zhàn),包括如何管理分布式數(shù)據(jù),還介紹了如何將單體應(yīng)用程序重構(gòu)為微服務(wù)架構(gòu),涵蓋44個架構(gòu)設(shè)計模式,系統(tǒng)解決服務(wù)拆分、事務(wù)管理、查詢和跨服務(wù)通信等難題。本書并不是鼓吹微服務(wù)架構(gòu)的宣言,作者既介紹了微服務(wù)的原理、原則,又詳細(xì)講解了實際落地中的架構(gòu)設(shè)計模式,將使你理解微服務(wù)架構(gòu)、它的好處和弊端,以及應(yīng)該何時使用微服務(wù)架構(gòu)。本書將幫助你建立微服務(wù)的全局視野,并學(xué)會在紛繁復(fù)雜的情況下做出正確的架構(gòu)選擇和取舍。
本書將教會你如何開發(fā)和部署生產(chǎn)級別的微服務(wù)架構(gòu)應(yīng)用。這套寶貴的架構(gòu)設(shè)計模式建立在數(shù)十年的分布式系統(tǒng)經(jīng)驗之上,Chris還為開發(fā)服務(wù)添加了新的模式,并將它們組合成可在真實條件下可靠地擴展和執(zhí)行的系統(tǒng)。本書不僅僅是一個模式目錄,還提供了經(jīng)驗驅(qū)動的建議,以幫助你設(shè)計、實現(xiàn)、測試和部署基于微服務(wù)的應(yīng)用程序。
本書包含:
●如何(以及為什么)使用微服務(wù)架構(gòu)
●服務(wù)拆分的策略
●事務(wù)管理和查詢相關(guān)的模式
●高效的測試策略
●包括容器和Serverless在內(nèi)的部署模式
本書專為熟悉標(biāo)準(zhǔn)企業(yè)應(yīng)用程序架構(gòu)的開發(fā)人員編寫,使用Java語言和Spring框架編寫所有示例代碼。
內(nèi)容簡介
成功地開發(fā)基于微服務(wù)架構(gòu)的應(yīng)用軟件,需要掌握一系列全新的架構(gòu)思想和實踐。在這本獨特的書籍中,世界十大軟件架構(gòu)師之一、微服務(wù)架構(gòu)先驅(qū)Chris Richardson收集、分類并解釋了44個架構(gòu)設(shè)計模式,這些模式用來解決諸如服務(wù)拆分、事務(wù)管理、查詢和跨服務(wù)通信等難題。
本書的目標(biāo)是讓架構(gòu)師和程序員學(xué)會使用微服務(wù)架構(gòu)成功開發(fā)應(yīng)用程序。
書中不僅討論了微服務(wù)架構(gòu)的好處,還描述了它們的弊端。讀者將掌握如何在使用單體架構(gòu)和使用微服務(wù)架構(gòu)之間做出正確的權(quán)衡。
【誰應(yīng)該閱讀本書】
本書的重點是架構(gòu)和開發(fā),適合負(fù)責(zé)開發(fā)和交付軟件的任何人(例如開發(fā)人員、架構(gòu)師、CTO 等)閱讀。
本書側(cè)重于解釋微服務(wù)架構(gòu)的設(shè)計模式和其他概念。無論讀者使用何種技術(shù)棧,我的目標(biāo)都是讓你們可以輕松讀懂這本書。你只需要熟悉企業(yè)應(yīng)用程序架構(gòu)和設(shè)計的基礎(chǔ)知識即可。特別是,需要了解三層架構(gòu)、Web 應(yīng)用程序設(shè)計、關(guān)系型數(shù)據(jù)庫、使用消息和基于 REST 的進(jìn)程間通信,以及應(yīng)用程序安全性的基礎(chǔ)知識等概念。本書的代碼示例使用 Java 和 Spring 框架。為了充分利用它們,讀者應(yīng)該對 Spring 框架有所了解。
【本書內(nèi)容安排】
本書由13章組成。
●第1章描述了所謂“單體地獄”的癥狀,當(dāng)單體應(yīng)用程序超出其架構(gòu)時會出現(xiàn)這種問題,這可以通過采用微服務(wù)架構(gòu)來規(guī)避。這一章還概述了微服務(wù)架構(gòu)模式語言,這也是本書大部分內(nèi)容的主題。
●第2章解釋了為什么軟件架構(gòu)很重要,描述了可用于將應(yīng)用程序分解為服務(wù)集合的模式,并解釋了如何克服在此過程中遇到的各種障礙。
●第3章介紹了微服務(wù)架構(gòu)中強大的進(jìn)程間通信的幾種模式,解釋了為什么異步和基于消息的通信通常是最佳選擇。
●第4章介紹如何使用 Saga 模式維護(hù)服務(wù)間的數(shù)據(jù)一致性。Saga 是通過傳遞異步消息的方式進(jìn)行協(xié)調(diào)的一系列本地事務(wù)。
●第5章介紹如何使用領(lǐng)域驅(qū)動設(shè)計(DDD)的聚合和領(lǐng)域事件等模式為服務(wù)設(shè)計業(yè)務(wù)邏輯。
●第6章以第5章為基礎(chǔ),解釋了如何使用事件溯源模式開發(fā)業(yè)務(wù)邏輯,事件溯源模式是一種以事件為中心的設(shè)計思路,用來構(gòu)建業(yè)務(wù)邏輯和持久化領(lǐng)域?qū)ο蟆?/p>
●第7章介紹如何使用API組合模式或命令查詢職責(zé)隔離(CQRS)模式,這兩個模式用來實現(xiàn)查詢分散在多個服務(wù)中的數(shù)據(jù)。
●第8章介紹了處理來自各種外部客戶端請求的外部 API 模式,例如移動應(yīng)用程序、基于瀏覽器的 JavaScript 應(yīng)用程序和第三方應(yīng)用程序。
●第9章是關(guān)于微服務(wù)自動化測試技術(shù)的兩章中的第一章,介紹了重要的測試概念,例如測試金字塔,描述了測試套件中每種測試類型的相對比例,還展示了如何編寫構(gòu)成測試金字塔基礎(chǔ)的單元測試。
●第10章以第9章為基礎(chǔ),描述了如何在測試金字塔中編寫其他類型的測試,包括集成測試、消費者契約測試和組件測試等。
●第11章介紹了開發(fā)生產(chǎn)就緒服務(wù)的各個方面,包括安全性、外部化配置模式和服務(wù)可觀測性模式。服務(wù)可觀測性模式包括日志聚合、應(yīng)用指標(biāo)和分布式追蹤。
●第12章介紹了可用于部署服務(wù)的各種部署模式,包括虛擬機、容器和 Serverless 模式。還介紹了使用服務(wù)網(wǎng)格的好處,服務(wù)網(wǎng)格是在微服務(wù)架構(gòu)中處理服務(wù)間通信的一個網(wǎng)絡(luò)軟件層。
●第13章介紹了如何通過采用絞殺者(Strangler)模式逐步將單體架構(gòu)重構(gòu)為微服務(wù)架構(gòu),絞殺者模式是指以服務(wù)形式實現(xiàn)新功能,從單體中提取模塊將其轉(zhuǎn)換為服務(wù)。
在學(xué)習(xí)這些章節(jié)的過程中,讀者將了解微服務(wù)架構(gòu)的不同方面。