TOP
0
0
魅麗。花火原創小說66折起
微服務架構深度解析:原理、實踐與進階(簡體書)
滿額折

微服務架構深度解析:原理、實踐與進階(簡體書)

人民幣定價:118 元
定  價:NT$ 708 元
優惠價:87616
領券後再享89折
無庫存,下單後進貨(採購期約45個工作天)
可得紅利積點:18 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

在當今的數字化經濟時代,微服務架構已經成為公司業務構建的主流架構模式,代表了未來的技術發展趨勢,同時微服務也成為開發者的必備技能。

本書從微服務架構的設計理念和方法論切入,從不同角度全面介紹微服務特性、使用場景、組織流程、構建交互、部署交付等軟件工程各個關鍵環節和核心要素,既包含了具體微服務技術的源碼解讀、原理分析,也加入了作者在電信、金融領域積累的真實案例和實踐經驗。

全書分為原理篇、實踐篇、進階篇。原理篇涵蓋微服務的概念、采用前提、領域驅動設計、DevOps;實踐篇對Spring Boot、Spring Cloud治理框架、系統集成、微服務數據架構、微服務交付、微服務的監控等重要技術話題展開深入講解;進階篇主要介紹函數式編程及響應式微服務架構、Kubernetes、云原生架構生態。

本書不僅適合初學者深入理解微服務架構,也可以作為團隊管理者或者架構師進階微服務架構的技術參考手冊。


作者簡介

王佩華


畢業於天津理工大學,目前就職於京東,任架構師,從事多年金融及電信行業分布式系統架構的設計及研發管理工作。


多項微服務領域專利的發明人,熱衷於參與開源社區並主導了公司微服務項目的開源和推廣,擅長通信協議設計、分布式中間件設計、高並發系統架構設計及云原生架構等。

名人/編輯推薦

★ 十多年微服務架構一線實戰摸爬滾打快速成長經驗分享

★ 涵蓋絕大部分微服務架構知識,內容充實、語言通俗

★ 從分布式到微服務,從Spring Boot到Spring Cloud各組件,

從Docker到Kubernetes,從領域驅動設計到響應式編程和云原生

★ 本書將信息梳理得井井有條,是提升學習效率的好途徑

★ 還難能可貴地結合了作者在實際業務中的微服務落地實踐

★ 本書是國內微服務方面少有的能夠寫這麼詳細的圖書

★ 可以幫助微服務相關人員構建知行合一的能力,

對設計開發分布式應用系統有很好的指導作用,

也是技術管理者技術選型的參考書

互聯網行業的工程師就好比運動員,要想在競技場上獲勝,需要在訓練場裡長期刻苦地練習技巧,想要成為一個不被時代拋棄的技術人,就需要不斷地更新迭代自己的知識體系。加油,讀者們,共勉!


當前,微服務架構在國內正處於蓬勃發展的階段,無論是大型互聯網公司還是傳統的IT企業,紛紛采用微服務架構構建系統。在過去幾年裡,DevOps、云原生、面向演進式架構等理念已經深入人心,圍繞微服務生態也出現了大量的組件、框架、工具,這很好地支撐了海量的數據增長和用戶業務需求的快速變化。本書將從微服務理論開始介紹,結合作者多年的工作經驗,深入講解分布式系統和微服務架構,從而幫助技術人員切實掌握微服務架構技術。

緣起

“物之所至者,志亦至焉;志之所至者,禮亦至焉;禮之所至者,樂亦至焉;樂之所至者,哀亦至焉。”

—楚簡《民之父母》

2008年,在一次軟件架構設計高端課程中,有人將中國傳統的“五至”與軟件工程做了形象的類比,提到從事軟件開發工作的工程師要“以物為本”。這次課程學習讓我印象深刻,也讓剛剛從事軟件開發工作的我第一次對“架構”這個詞有了直觀而深刻的認識,這次課程學習成了我後來的架構師之路的燈塔。

在“五至”中,對“物、志、禮”進行了明確的排序:先有物,而後有志,最後有禮,所以重點是“物”。我們把這種思想對應到軟件工程的項目實踐中,可以這樣理解:物就是最終的交付物,即軟件產品;志對應項目的利益相關人;而禮則對應項目的過程管理。這樣的排序不無道理,在項目實踐過程中,應該以最終的交付物為中心,所以我們必須重視架構設計,只有經過完善的架構設計,才能呈現最好的軟件產品。在項目的初期就要做好架構設計,達到“物之所至”;協調項目的利益相關方,達成共識,達到“志亦至焉”;在項目的進行過程中,做好項目管理和流程監控,達到“禮亦至焉”。

由上可知,軟件架構是決定軟件工程成敗的首要因素,架構之道就是面對不同的問題域找到最佳的技術實現方案。在軟件工程中,技術架構同時受到組織、流程管理的影響,然而軟件產品最終能否成功仍然需要“以物為本”。

與時俱進

縱觀計算機產業,過去的半個世紀,遵從摩爾定律的規律,計算力一直保持著大跨度的提高。1956年,英特爾創始人戈登·摩爾提出,集成電路的集成度每兩年會翻一番;而後這個周期縮短到18個月,微處理器的性能每隔18個月提高1倍。然而,硅芯片已逼近物理和經濟成本上的極限,許多專業人士紛紛預測,摩爾定律在不久的將來會失效。界時,我們會面臨CPU性能提升放緩,計算力增長勢微的局面。同時云計算、大數據、物聯網、邊緣計算、人工智能等技術的進一步成熟所產生的海量數據,卻加大了對後端數據中心計算力的需求。

數字化經濟的快速發展和云計算給底層IT系統帶來的巨大變革正是當下微服務架構快速發展的時代背景。Gartner預計,從2018年到2022年,PaaS將成為未來的主流平臺交付模式,而PaaS平臺需要更加靈活的云原生應用架構做技術支撐,微服務架構正是云原生架構落地的關鍵技術。

正所謂“大道至簡”,微服務本身是一個化繁為簡的過程,它采用細粒度的分布式架構模式,通過系統化的思考方式,將紛繁復雜的業務邏輯映射到底層技術。在軟件構建方面,微服務傾向於使用面向服務和領域驅動設計(Domain Driven Design)的方法論,將現實中的問題投影到物件的世界。“抽象、分解、擴展、復用”是常見的微服務構建系統的內功心法。然而軟件開發沒有“銀彈”,架構設計還要從使用、性能、成本、效率、團隊、收益等多方面權衡(Trade-off),進行綜合考慮。

微服務架構的目標是,將業務與技術的復雜度進行分離,使業務更專注於實現對客戶的價值交付,而將非功能需求封裝在平臺或者底層SDK中。目前在企業的應用開發中,Spring Boot和Spring Cloud平臺作為微服務的技術開發框架,依然占據主流地位;而伴隨容器和Kubernetes平臺的崛起,結合自動化和DevOps持續交付流程,微服務可以顯著提升應用交付的效率和產品的質量,此外。微服務還有如下優勢:

l 更加快速地響應業務需求。

l 可提升應用的開發效率。

l 可滿足對云原生的支持。

l 可滿足系統的彈性、擴展性的需求。

l 容錯性及生產就緒特性可保證服務的高可用。

l 有標準化的服務實現和交付方式。

l 基於“不可變基礎設施”模式,可以減少環境因素的影響。

l 可提升系統性能及資源利用率。

傳統粗放式的開發和運維方式將逐漸被取代,而更加高效、智能化、自動化的開發和運維方式將使每個人從中獲益。當前,微服務和云原生應用架構還在快速演進之中,其間充滿了機遇和挑戰。作為軟件從業人員,面對技術的更新迭代,我們唯有整裝待發,才能與時俱進。

關於本書

本書的原理篇將深入講解當前微服務架構的理念和方法論;實踐篇主要講解Spring Boot和Spring Cloud微服務框架體系;進階篇關注微服務發展的技術趨勢。本書既涵蓋了我多年在傳統電信企業中積累的分布式架構設計經驗,也涵蓋了互聯網金融行業的前沿技術實踐;本書既有我在大型項目中的經歷分享和痛點復盤,也有開源軟件的案例介紹,以及當下微服務技術趨勢的深度剖析和預測。在本書的代碼案例中,使用的是Spring Boot 1.5.11,在進階篇中使用了Spring Boot 2.x,這兩種版本在使用和配置方面有諸多不同,並且其中一些功能僅支持JDK1.8及以上版本,讀者在閱讀中需要注意。

內容結構

本書在結構上從3個層次深入解讀微服務架構,希望讀者能夠循序漸進地深入了解微服務架構的理論及技術實踐;當然,具備一定微服務架構經驗的工程師也可以根據需要選擇性地閱讀。

l 原理篇

原理篇主要講解微服務的概念、微服務與云原生的關係、微服務的主要特性及設計哲學、采用微服務的前提、微服務構建的理論基礎及基本原則,以及領域驅動設計和微服務構建方法論、DevOps方法論等相關知識。

l 實踐篇

實踐篇主要對微服務架構落地的腳手架、關鍵技術、系統集成、數據架構、持續交付、服務治理監控等重要技術話題展開講解。另外,針對初學者對Spring Boot和Spring Cloud體系“入門容易、精通難”的問題,實踐篇中結合框架源碼詳細解構了Spring Boot的框架底層運行機制,並具體介紹了Spring Cloud核心治理組件及其工作原理,還會講解如何基於開源軟件做擴展性開發。

l 進階篇

進階篇主要介紹函數式編程、響應式微服務架構設計原理、常用的響應式編程框架、Spring Boot 2新特性,講解Kubernetes工作原理、微服務與云原生生態的技術融合演進、微服務未來的技術發展趨勢。

由於我在編寫本書的同時需要兼顧工作,時間和精力有限,書中難免有不足之處,懇請廣大讀者批評指正。

致謝

首先感謝工作中的各位同事,感謝生活中的朋友,感謝宜信公司的高蕾涵同學,感謝電子工業出版社董英老師的鼓勵和幫助,因為你們我才有動力完成這本書。最後,謹以此書獻給我的妻子和家人,感謝你們對我工作的大力支持!

王佩華


目次

原理篇

第1章 微服務概述

1.1 微服務架構介紹

1.1.1 背景介紹

1.1.2 微服務的定義

1.1.3 微服務與云原生

1.2 微服務主要特性

1.2.1 粒度更細的服務

1.2.2 圍繞業務劃分團隊

1.2.3 技術多樣性

1.2.4 去中心化

1.2.5 自動化運維

1.2.6 快速演進

1.3 架構設計哲學

1.3.1 小即是美

1.3.2 做好一件事

1.3.3 快速建立原型

1.3.4 軟件的復利效應

1.3.5 可移植性優先

1.4 小結

第2章 微服務的采用前提

2.1 微服務使用場景

2.1.1 項目復雜度

2.1.2 團隊規模

2.1.3 變更頻率

2.1.4 項目類型

2.1.5 遺留系統遷移

2.2 技術與理念

2.2.1 面向服務

2.2.2 底座技術

2.2.3 架構技術

2.2.4 服務監控與治理

2.2.5 容器和自動化技術

2.2.6 云原生12要素

2.3 康威定律

2.3.1 協作問題

2.3.2 溝通效率問題

2.3.3 組織的演進

2.4 流程管理

2.4.1 敏捷方法論

2.4.2 DevOps轉型

2.4.3 自動化管理工具

2.5 小結

第3章 微服務構建

3.1 領域驅動設計

3.1.1 領域驅動設計概述

3.1.2 專注問題域

3.1.3 服務的拆分

3.1.4 界限上下文

3.1.5 領域建模

3.1.6 架構設計

3.2 微服務化改造

3.2.1 技術債務

3.2.2 微服務化改造時機

3.2.3 單體架構的改造模式

3.3 微服務構建進階

3.3.1 軟件構建

3.3.2 微服務構建實踐

3.3.3 微服務架構反模式

3.4 小結

實踐篇

第4章 腳手架

4.1 腳手架介紹

4.1.1 什麼是腳手架

4.1.2 為什麼需要腳手架

4.1.3 不要重新造輪子

4.1.4 常用腳手架

4.2 Spring Boot啟動

4.2.1 Spring Boot概述

4.2.2 Spring Boot快速搭建

4.2.3 @SpringBootApplication注解詳解

4.2.4 Spring Boot啟動流程進階

4.2.5 Spring Boot自動裝配機制

4.2.6 Spring Boot功能擴展點詳解

4.3 Spring Boot Starter技術

4.3.1 Spring Boot Starter概述

4.3.2 Spring Boot常用開箱即用Starter

4.3.3 Spring Boot生產就緒與環境配置

4.3.4 Spring Boot安全管理

4.3.5 Spring Boot實現自定義Starter

4.4 Spring Boot Web容器

4.4.1 Spring Boot Web容器配置

4.4.2 Spring Boot嵌入式Web容器原理

4.4.3 Spring Boot的ClassLoader加載機制

4.5 小結

第5章 關鍵技術

5.1 服務注冊與發現

5.1.1 服務注冊與發現原理

5.1.2 微服務注冊中心技術選型

5.1.3 Spring Cloud Eureka

5.1.4 Eureka架構與設計原理

5.1.5 Eureka緩存機制

5.1.6 Eureka定制化開發

5.2 服務配置中心

5.2.1 服務配置中心管理

5.2.2 Spring Cloud Config

5.2.3 Config Server配置詳解

5.2.4 Config Server定制化開發

5.3 微服務網關

5.3.1 微服務網關模式

5.3.2 網關的主要功能

5.3.3 網關的技術選型

5.3.4 Spring Cloud Zuul網關

5.3.5 Zuul的主要工作原理

5.3.6 Zuul的插件機制及定制化開發

5.3.7 Zuul的動態路由

5.3.8 Zuul Filter擴展功能實現

5.3.9 Zuul源碼解析

5.4 負載均衡

5.4.1 負載均衡機制

5.4.2 四層與七層負載均衡

5.4.3 負載均衡算法

5.4.4 Spring Cloud Ribbon

5.4.5 Ribbon的核心工作原理

5.4.6 Ribbon源碼解析

5.5 容錯與隔離

5.5.1 隔離機制

5.5.2 微服務的風險

5.5.3 降級保護

5.5.4 限流保護

5.5.5 熔斷保護

5.5.6 超時與重試

5.5.7 Spring Cloud Hystrix容錯框架

5.5.8 Hystrix的核心工作原理

5.5.9 Hystrix源碼解析

5.6 小結

第6章 系統集成

6.1 服務集成交互技術

6.1.1 網絡協議

6.1.2 Linux I/O模式

6.1.3 序列化方式

6.2 REST服務集成

6.2.1 REST API

6.2.2 Swagger接口文檔規範

6.2.3 JAX-RS提供REST服務

6.2.4 Feign實現REST調用

6.3 RPC遠程過程調用

6.3.1 RPC框架概述

6.3.2 主流RPC通信框架

6.3.3 Dubbo架構進階

6.3.4 Spring Cloud集成Dubbo

6.3.5 Spring Cloud集成gRPC

6.4 MOM異步通信

6.4.1 消息中間件概述

6.4.2 消息中間件的使用場景

6.4.3 常用消息中間件

6.4.4 RabbitMQ消息中間件

6.4.5 Kafka消息中間件

6.4.6 Spring Cloud Stream概述

6.4.7 Stream源碼解析

6.4.8 Stream應用進階

6.5 小結

第7章 微服務數據架構

7.1 數據分類及存儲特性

7.1.1 關係數據庫概述

7.1.2 NoSQL數據存儲

7.1.3 Spring Data

7.1.4 使用spring-boot-starter-jdbc訪問MySQL

7.1.5 Spring ORM框架訪問數據庫

7.1.6 Spring Data與NoSQL的集成

7.2 事務管理理論

7.2.1 事務管理概述

7.2.2 ACID理論

7.2.3 一致性理論

7.2.4 CAP理論

7.2.5 BASE理論

7.3 微服務架構的數據一致性

7.3.1 解決方案概覽

7.3.2 兩階段提交模式

7.3.3 TCC補償模式

7.3.4 Saga長事務模式

7.3.5 可靠消息模式

7.4 小結

第8章 微服務交付

8.1 軟件交付演進

8.1.1 軟件過程模型

8.1.2 交付演進歷程進階

8.2 微服務如何持續集成交付

8.2.1 配置管理概述

8.2.2 持續集成概述

8.2.3 持續集成Pipeline

8.2.4 持續交付概述

8.2.5 持續交付Pipeline

8.3 基於容器的交付

8.3.1 Docker概述

8.3.2 Docker的原理

8.3.3 Docker構建部署過程

8.3.4 Docker Compose編排服務

8.3.5 Maven插件構建Docker鏡像

8.4 小結

第9章 服務監控治理

9.1 監控系統概述

9.1.1 監控系統原理及分類

9.1.2 監控分類

9.1.3 監控關注的物件

9.2 指標型數據監控

9.2.1 指標采集概述

9.2.2 JavaAgent技術

9.2.3 Javaassist技術

9.2.4 Spring Boot Admin監控詳解

9.2.5 Spring Boot集成Prometheus

9.3 日志監控方案

9.3.1 日志采集方案

9.3.2 ELK日志的解決方案

9.3.3 Spring Boot的日志解決方案

9.4 服務調用鏈技術

9.4.1 APM與調用鏈技術

9.4.2 Dapper與分布式跟蹤原理

9.4.3 Sleuth與Zipkin技術

9.4.4 SkyWalking技術

9.5 小結

進階篇

第10章 響應式微服務架構

10.1 響應式編程

10.1.1 響應式編程的動機

10.1.2 響應式宣言

10.1.3 響應式編程詳解

10.1.4 編程範式

10.2 響應式技術框架

10.2.1 響應式編程規範

10.2.2 Java Flow API

10.2.3 RxJava響應式框架

10.2.4 Reactor響應式框架

10.2.5 Vert.X響應式編程

10.2.6 Spring Boot 2響應式編程

10.3 Spring WebFlux框架

10.3.1 Spring WebFlux概述

10.3.2 WebFlux服務器開發

10.3.3 WebClient開發

10.3.4 服務端推送事件

10.3.5 Spring WebFlux的優勢與局限

10.4 Spring Cloud Gateway

10.4.1 Spring Cloud Gateway概述

10.4.2 Spring Cloud Gateway的工作原理

10.4.3 Spring Cloud Gateway的動態路由

10.4.4 Spring Cloud Gateway源碼解析

10.5 小結

第11章 Kubernetes容器管理

11.1 Kubernetes的基礎

11.1.1 Kubernetes基本概述

11.1.2 Kubernetes的核心組件

11.2 Kubernetes的設計理念

11.2.1 Kubernetes的設計原則

11.2.2 Kubernetes與微服務

11.2.3 Kubernetes與DevOps

11.3 Spring Cloud與Kubernetes的生態融合

11.3.1 Spring Cloud與Kubernetes各自的優劣勢

11.3.2 Spring Cloud與Kubernetes的融合

11.3.3 Spring Cloud Kubernetes項目

11.4 小結

第12章 微服務發展趨勢

12.1 云原生應用架構

12.1.1 云原生應用架構進階

12.1.2 Java的云原生應用優化

12.2 Service Mesh技術

12.2.1 微服務的SideCar模式

12.2.2 Service Mesh的技術前景

12.3 Serverless技術

12.3.1 Serverless的模式

12.3.2 Serverless的技術前景

12.4 總結


您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 616
無庫存,下單後進貨
(採購期約45個工作天)

暢銷榜

客服中心

收藏

會員專區