[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

微服務從小白到專家――Spring Cloud和Kubernetes實戰(博文視點
該商品所屬分類:圖書 -> 電子工業出版社
【市場價】
1744-2528
【優惠價】
1090-1580
【作者】 姚秋辰張昕卿睿 
【所屬類別】 電子工業出版社 
【出版社】電子工業出版社 
【ISBN】9787121419478
【折扣說明】一次購物滿999元台幣免運費+贈品
一次購物滿2000元台幣95折+免運費+贈品
一次購物滿3000元台幣92折+免運費+贈品
一次購物滿4000元台幣88折+免運費+贈品
【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
版本正版全新電子版PDF檔
您已选择: 正版全新
溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
*. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
*. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
內容介紹



出版社:電子工業出版社
ISBN:9787121419478
版次:1

商品編碼:13445362
品牌:電子工業出版社
包裝:平裝

開本:16開
出版時間:2021-09-01
用紙:膠版紙

頁數:716
正文語種:中文

作者:姚秋辰,張昕,卿睿

    
    
"

產品特色

編輯推薦

適讀人群 :具備一定Java基礎的開發人員、對微服務架構和Spring Cloud技術及容器編排技術感興趣的讀者

新版本:針對Spring Cloud Hoxton + Spring Boot 2.2.x版本

專注實踐:實戰項目貫穿全書,體驗單體應用到微服務架構的升級過程

技術全面:Spring Boot、Spring Cloud Netflix/阿裡巴巴、Docker、Kubernetes和Service Mesh核心技術全覆蓋

低門檻:通過實戰項目學練結合,初學者也能輕松上手

深入剖析:通過實戰案例展示業界主流的微服務架構最佳實踐


內容簡介

本書源碼以Spring Boot 2.2.x、Spring Cloud Hoxton和Kubernetes 1.19.2為基礎,從Spring Boot單體應用的搭建,到Spring Cloud微服務架構升級,再到使用Docker和Kubernetes容器編排技術做容器化改造,由淺入深、逐步講解,使讀者全面掌握主流微服務架構和容器編排方案。本書共22章,分為三個部分。第一部分,講解Spring Boot的核心功能和底層原理,手把手帶讀者搭建一個基於Spring Boot的優惠券平臺單體應用繫統。第二部分,講解Spring Cloud微服務技術的應用,涵蓋了Spring Cloud Netflix和Spring Cloud阿裡巴巴兩大組件庫的核心組件,在項目實戰環節,將Spring Cloud微服務技術應用到優惠券項目中,讓讀者親身體驗從單體應用升級為微服務架構的過程。第三部分,深入講解Docker容器技術和Kubernetes容器編排技術的核心功能,並對優惠券項目做容器化改造。本書緊扣實戰、學練結合,適合具備一定Java基礎的開發人員、對微服務架構和Spring Cloud技術及容器編排技術感興趣的讀者。對處在微服務架構轉型期的團隊來說,本書具有很大的實踐指導價值。

作者簡介

姚秋辰

PayPal China研發經理,擁有十餘年繫統架構設計與團隊管理經驗,專注於互聯網電商、金融和支付等領域的高可用繫統設計,在微服務繫統的架構設計上有豐富的實踐經驗。曾就職於eBay、阿裡、SAP和HP,參與或主導過多個大型應用的微服務改造、穩定性優化和主鏈路高可用等方案設計。


張昕

StubHub國際互聯網票務公司DevOps團隊和雲平臺負責人,OpenGroup認證架構大師,前IBM和eBay高級架構師。十餘年繫統架構設計與咨詢管理經驗,曾主導多家國內外大型金融機構、電信運營商和互聯網公司的繫統優化、雲平臺轉型、容災多化設計,對微服務拆分管理、容器編排部署、繫統安全性、可用性、擴展性等設計有著豐富的實戰經驗。


卿睿

PayPal高級架構師,十多年的架構設計經驗,涉足的領域從企業應用到大型互聯網產品。在分布式和大型繫統設計方面都有豐富的理論知識和實踐經驗,主導過多個全球性項目的架構設計和落地。對DDD有深入的認知,並基於此打造了多個從0到1的產品。此外,曾帶領團隊完成多個大型繫統微服務化改造和雲架構遷移。曾先後在HP、Accenture和eBay等公司擔任架構師,目前專注於電商、合規等領域。


精彩書評

專家力薦

I worked directly with the three authors of this book successfully transforming monolithic legacy technology to modernized, containerized Spring Cloud microservices.These three gentlemen are practical experts at these topics, and their examples are very effective at sharing and teaching their experience. Modernization can be a vague and hard to achieve or understand technology concept, but these three architects make it real.This book will walk you through the hands on and practical experience of splitting, transforming, managing, and deploying microservices, and provide strong foundational experience on the Spring Cloud and Kubernetes frameworks that they found instrumental.I am looking forward to an English translation of this book to share with my new team, and I hope the Chinese developer community can continue to gain from and add to the experience of these three great architects.

-Austin Sheppard, CTO and VP Engineering, Booking.com Trips,
and former CTO, StubHub (10 year China software engineering executive veteran)

我與本書三位作者共事,曾親歷過從單體應用成功轉型到現代化、容器化技術所支撐的Spring Cloud微服務。三位作者是書中所涉及各章節話題的實戰演練專家,本書樣例有三位作者的親歷佐證,實測有效。現代化技術概念較為模糊,不易實現和理解,但這三位架構師抽絲剝繭,娓娓道來。

本書從作者在項目中親歷的微服務拆分、改造、治理和部署方式說起,結合不可或缺的Spring Cloud和Kubernetes基礎,循序漸進,指引讀者。我期待能早日看到本書的英譯版,可以分享給我的新團隊。我希望在華的程序員群體能從書中獲益,汲取經驗,與三位架構師作者共勉前行。

——Austin Sheppard,Booking首席技術官兼副總裁,StubHub前首席技術官,
在中國有10年軟件工程領域的管理經驗

我與張昕相識於十幾年前傳統IT時代的IBM,最近聽說他寫了一本關於微服務的書,市面上有很多介紹Spring Boot/Cloud的書,也有很多介紹Docker的書,但是能夠從微服務的本質入手,完美地融合開發和運維,把兩者結合在一起,並且寫得很具實操性的書卻很少,而本書非常好地實現了這些需求。

本書不僅僅介紹了微服務和相關的技術框架及工具,還非常好地融入了很多場景化的實踐。比如,在互聯網應用中經常遇到的流量控制、全鏈路追蹤、容器編排等。

這是一本適合所有熱愛微服務和DevOps技術的從業者閱讀的書,是我看過的具有實操性的微服務技術書,相信它能解答大家心中的很多疑惑。

我也曾有寫書的衝動,但卻從未施行,因為寫書並不容易,是一件需要有很強的公益心態纔能完成的事。寫一本好書更是難上加難,特別欽佩張昕的勇氣和付出,謝謝他能帶給我們一本微服務技術好書。

——肖凱 神州數碼雲業務集團副總裁,阿裡雲MVP

在這個微服務技術異常炙熱、微服務的技術專家依然奇缺的年代,如何快速培養微服務技術工程師,越來越成為一個迫切的問題。此方面好的相關圖書更是寥寥可數。

本書內容全面,而且有重點、有深入,注重實戰,結合實例循序漸進,娓娓道來,尤其對技術的重點和難點解釋得很詳細、很透徹,是一本值得借鋻參考的好書。

——趙琨 StubHub中國研發中心總經理

隨著業務復雜性的不斷提升,從單體應用到微服務架構的演進是大勢所趨。

微服務架構是一個復雜的命題,而Spring Cloud是業界最常用的微服務框架。本書手把手教你如何基於Spring Boot構建微服務項目,如何在此框架之上完成服務發現、服務降級、熔斷及限流,並完成API網關和鏈路追蹤等配置。

在理解微服務架構的基礎之上,本書進一步講解了如何將微服務容器化,並在容器雲平臺Kubernetes及服務網格管理框架Istio上構建和管理微服務。本書涵蓋了微服務管理的方方面面,有理論有實踐,對需要入門微服務管理的讀者來說是一本難得的好書。

——孟凡傑 eBay資深架構師,《Kubernetes生產化實踐之路》作者


目錄

.

目錄

第1章熱身運動 1

1.1準備工作 1

1.2Java Web開發的進化史 6

第2章Spring Boot介紹 26

2.1Spring Boot的前塵往事 26

2.2Spring Boot的設計理念 34

2.3Spring Boot的核心功能 34.

第3章Spring Boot實戰 63

3.1創建Spring Boot項目 63

3.2項目運行打包 70

3.3Spring Boot管理日志 74

3.4數據訪問 80

3.5消息繫統 143

3.6應用安全管理 162

3.7定時任務 173

3.8Spring Boot項目測試 186

第4章微服務與Spring Cloud 189

4.1什麼是微服務架構 189

4.2微服務的拆分規範 192

4.2.1領域模型 192

4.3大廠微服務架構的服務治理方案 193

4.4了解Spring Cloud 196

4.5了解Spring Cloud組件庫 198

4.6實戰項目技術選型 203

第5章使用Eureka實現服務治理 205

5.1什麼是服務治理 205

5.2Spring Cloud中常用的注冊中心 207

5.3分布式繫統理論 209

5.4Eureka核心概念 211

5.5優惠券項目改造――高可用注冊中心 213

5.6coupon-template-service微服務架構升級 218

5.7改造coupon-calculator 221

5.8改造coupon-user-service服務 222

5.9Eureka中的其他配置參數 227

第6章使用Nacos實現服務治理 229

6.1什麼是Nacos 229

6.2Nacos的核心功能 230

6.3Nacos下載與安裝 232

6.4Nacos實戰 234

第7章使用Ribbon實現負載均衡 247

7.1什麼是負載均衡 247

7.2了解Ribbon 248

7.3了解Ribbon的負載均衡器 249

7.4IPing機制 251

7.5微服務項目架構升級 252

第8章使用OpenFeign實現服務間調用 256

8.1Feign 256

8.2微服務架構升級――使用Feign代理接口調用 258

第9章使用Hystrix實現服務間容錯 267

9.1Hystrix 267

9.2Hystrix的核心概念 269

9.3微服務架構升級――配置熔斷和降級 271

9.4微服務架構升級――利用Turbine收集Hystrix信息 281

9.5微服務架構升級――利用Hystrix Dashboard觀察服務健康度 284

9.6啟用Hystrix Dashboard觀察服務狀態 286

第10章使用Sentinel實現限流控制 290

10.1服務容錯 290

10.2Sentinel簡介 291

10.3Sentinel控制臺 296

10.4Sentinel與Spring Cloud的集成 297

10.5使用Sentinel實現降級控制 298

10.6使用Sentinel實現限流控制 302

10.7Sentinel的日志 307

第11章使用Spring Cloud Config和Bus搭建配置中心 310

11.1配置中心在微服務中的應用 310

11.2了解Spring Cloud Config和Bus 313

11.3準備工作――創建GitHub文件 315

11.4微服務架構升級――搭建高可用的配置中心 316

11.5GitHub配置文件命名規則 322

11.6對GitHub中的配置項進行加解密 324

11.7微服務架構升級――從配置中心讀取配置項 328

第12章使用Spring Cloud Gateway搭建服務網關· 334

12.1了解微服務網關· 334

12.2Spring Cloud Gateway的核心概念——路由、謂詞和過濾器· 337

12.3路由功能· 339

12.4微服務架構改造——搭建網關模塊· 343

12.5微服務架構升級——使用Redis+Lua做流控 348

第13章使用Sleuth進行調用鏈路追蹤· 354

13.1為什麼微服務架構需要鏈路追蹤· 354

13.2鏈路追蹤技術介紹· 356

13.3Sleuth基本數據結構· 359

13.4微服務架構升級——集成Sleuth實現鏈路追蹤· 361

13.5微服務架構升級——搭建Zipkin服務器· 362

13.6微服務架構升級——搭建ELK環境 368

第14章使用Stream集成消息隊列· 375

14.1了解Stream·· 375

14.2消息隊列在微服務架構中的應用· 376

14.3消息隊列的概念· 380

14.4微服務架構升級——異步分發優惠券· 382

14.5微服務架構升級——Stream異常處理· 387

14.6Stream實現延遲消息 391

第15章使用Seata實現分布式事務· 396

15.1為什麼需要分布式事務· 396

15.2分布式事務的替代方案· 397

15.3傳統的XA分布式事務解決方案· 398

15.4Seata框架介紹· 400

15.5Seata的AT模式· 402

15.6微服務架構升級——搭建Seata服務器· 410

15.7微服務架構升級——應用改造 416

第16章走進容器化的世界· 420

16.1微服務落地的難點· 420

16.2容器技術的演進· 432

16.3容器編排技術先睹為快 436

第17章Docker容器技術· 442

17.1從HelloWorld起步· 442

17.2Docker架構· 445

17.3Docker鏡像· 452

17.4Docker容器· 464

17.5Docker存儲· 473

17.6Docker網絡· 481

17.7進一步感受Docker的魅力· 488

17.8鏡像倉庫· 499

17.9【優惠券項目落地】——Docker容器化 502

第18章Kubernetes基礎· 513

18.1了解容器編排· 513

18.2了解Kubernetes· 514

18.3Kubernetes基本概念· 516

18.4Kubernetes集群搭建· 520

18.5Pod管理· 526

18.6Controller管理· 540

18.7【優惠券項目落地】——Kubernetes容器化管理 560

第19章Kubernetes網絡互聯· 564

19.1跨節點網絡 565

19.2服務發現與負載均衡 566

19.3【優惠券項目落地】——服務發現和互聯 577

第20章Kubernetes數據存儲· 585

20.1Volume卷 586

20.2ConfigMap和Secret 594

20.3【優惠券項目落地】——配置和磁盤管理 603

第21章Kubernetes高級功能 606

21.1容器化的非功能性需求 607

21.2安全性 608

21.3可用性 613

21.4擴展性 616

21.5易用性 622

21.6可觀察性 629

21.7【優惠券項目落地】——Kubernetes容器架構終態 637

第22章Service Mesh· 647

22.1Service Mesh在微服務中的應用 648

22.2從BoofInfo樣例起步 650

22.3了解Istio架構 657

22.4服務治理 659

22.5服務安全 671

22.6服務監控 677

22.7【優惠券項目落地】——非侵入式容器進階態 680


查看全部↓

精彩書摘

16.3.1

16.3.1資源統一管理和容器編排協作

沒有規矩不成方圓,在大數據的動物園中,由動物管理員(ZooKeeper)來統籌一切。同樣道理,在容器的蜂巢中,各種微小的工蜂和雄蜂進進出出,要想管理好這一堆堆的小容器,就需要一隻精明能干的蜂皇——容器編排調度繫統來完成這項工作。

編排繫統要完成以下基本功能,纔能夠把容器的蜂巢管理得井井有條:

· 資源管理:針對不同的物理繫統資源,進行合理的資源選擇(通過標簽等方式)、配額管理、數據復制,保證單一物理資源出現單點故障時,業務和服務仍然可以實現高可用。

· 配置管理:將不同的配置文件、環境變量、配置卷等與容器應用相綁定,實現動態的環境變量和配置修改。

· 發布管理:將相關應用按一定的先後順序進行統一分組管理,完成應用的跨節點發布、回退、健康檢查和歷史查詢等功能。

· 網絡管理和服務發現:將跨節點部署的容器進行網絡互通,並提供統一的服務發現和管理方式,方便容器外的其他應用訪問容器繫統,並實現負載的均衡分布。

· 彈性伸縮:按照時間規劃或者由外部業務壓力來觸發容器資源的動態伸展和收縮,實現秒殺、搶購等平臺的彈性伸縮需求。


16.3.2Swarm

Docker Swarm作為Docker公司推出的容器編排技術,將Docker Compose在單一節點上進行容器編排協作的能力擴展到了多節點。同時,Swarm繼承了Docker的輕量級容器化的特點,它可以不需要復雜的etcd、ZooKeeper等集群仲裁配置節點,不需要艱難地選擇網絡協議,而是方便地實現多節點網絡互通、服務發現、容器編排、策略控制等,可謂是容器編排戰場的輕騎兵。圖16-11是一位網友的實戰分享(源出處是hypriot博客),他將超小型計算節點“樹莓派”和Docker Swarm容器編排結合起來,實現了手掌上的容器發布管理,Swarm的輕量特性由此可見一斑。

.

圖16-11 輕量級Swarm部署案例

16.3.3Mesos

Mesos誕生於2010年,美國加州伯克利分校。它迅速得到Twitter、Yelp、Netflix、Apple、Verizon等的背書,發展到單個集群數千節點、數十萬容器的規模。

Mesos是一套定位於將整個數據中心進行資源統一管理和調度的軟件平臺。如果說Linux內核是Linux操作繫統的核心,那麼Mesos就可以算是整個數據中心的核心。在Mesos上可以將Marathon長作業調度繫統、Chronos定時任務管理繫統、Aurora應用管理繫統、Jenkins CICD發布管理繫統、Hadoop/Spark大數據繫統作為一個個插件,安裝在這個數據中心內核上。Mesos和這些插件的功能組合起來,就形成了一套完整的DCOS(數據中心操作繫統)。管理員可以像管理一套操作繫統一樣方便地管理整個機房裡成千上萬的服務器、存儲、網絡資源等。

在Mesos所有的搭檔中,最火的要數Docker和Marathon。Docker作為內核的,完成Mesos Master和Mesos Slave的任務要求,啟停相應的容器應用;而Marathon則作為長作業調度的管理節點,將Mesos內核提供的資源進行合理的分配和協作,完成一組或多組作業任務需求。Mesos Marathon架構如圖16-12所示,Marathon調度器和Mesos Master構成了控制平面,而Mesos Slave和Docker共同構成了容器的執行平面。

圖16-12 Mesos Marathon架構

Mesos的主要特點:

· 可以和各種業務生態進行配合使用:既可以適合Hadoop、Spark等大數據業務形態;也可以適合傳統的無狀態容器發布形態;既可以完成定時批量處理作業,也可以作為長時運行的業務應用,提供交易服務。

· 調度和資源供給相分離:Mesos作為資源管理的核心,並不涉及任務調度。將復雜多變的任務調度作為插件的方式和Mesos配合使用,為整個繫統的擴展性和靈活性留下了方便之門。

· 資源隔離:Mesos可以通過Docker容器的Namespace和CGroup進行資源的隔離和管理,也可以通過POSIX標準進行CPU、內存和磁盤等的隔離,選擇性較強。

16.3.4Kubernetes

Kubernetes是當今最知名的容器編排工具。其拗口的名字也不能阻擋小伙伴們的熱情,大家將中間的8個英文字母縮寫後,親切地叫一聲K8S——這纔是它朗朗上口的名稱。

Kubernetes是Google的Borg繫統的開源解決方案。如圖16-13所示,它通過Kubernetes Master節點完成了集群的管理,通過Node節點完成了業務的承載,通過P完成了相關容器的組合部署。

圖16-13 Kubernetes架構

隨著Google將Kubernetes捐贈給CNCF(Cloud Native Computing Foundation),並且伴隨著IBM、RedHat、CoreOS微軟、Docker等的頂力支持,Kubernetes很快成為容器界的“一哥”。其強大的網絡、存儲、配置、發布和監控管理,吸引了無數開源貢獻者和追隨者。我們將在後續章節給大家揭開其神秘的面紗,真正體會其容器的編排之美。

16.3.5Rancher

Rancher本質上是基於容器編排引擎之上的企業級PaaS容器管理平臺。作為一個兼容多種編排引擎(Kubernetes、Swarn、Mesos、Cattle等)的通用容器管理平臺,Rancher抽像了編排引擎的底層實現細節,提供了類似公有雲PaaS平臺的一鍵部署、服務治理、多租戶共存、全站監控等功能。無論是在應用商店的管理方面,還是在公有雲IaaS資源的統籌規劃、企業級權限安全的掌控方面,都可以和公有雲PaaS平臺一較高下。同時作為開源解決方案,省去了企業內部自研、從頭搭建管理平臺的時間。Rancher的整體架構如圖16-14所示,它包含了基礎架構服務(Infrastructure Services)、容器編排引擎(Docker Swarm、Mesos或Kubernetes)、管理工具(User Mgmt和Ops Mgmt)和琳瑯滿目的應用商店(Rancher Catalog)


圖16-14 Rancher的整體架構

16.3.6各大容器編排框架對比

每個人都有心中的哈姆雷特,對於編排框架也是如此。表16-2是容器編排框架對比。

表16-2 容器編排框架對比



查看全部↓

前言/序言

推 薦 序



很多時候人們常常把軟件架構和建築學做類比,兩者的英語原文都是Architect。Architect這個詞源於建築學,後來被軟件領域采用。雖然軟件領域和建築領域中的“架構”一詞在概念層面有著相似性,但是到了實際落地層面,兩者卻是截然不同的。

建築領域中的“架構”是從一開始就設計好了的,後面的施工建設隻是依據這個架構圖紙去一比一地實現。需要多少塊磚、需要多少資源都是事先可以精確預估的。然而,軟件領域中的“架構”更像是一種設計哲學,或者說是一種設計藝術,即使采用相同的架構設計理念,最後實現的代碼也可能會完全不同。因此,我在各種公開場合都一直強調“軟件的架構從來不是設計出來的,而是生長出來的”。

縱觀歷史,軟件架構的發展經歷了很多裡程碑,從早期的單體架構,到後來的分層架構,再到SOA、微服務,以及下一代微服務技術——服務網格(Service Mesh)。每一次的架構迭代都是為了解決之前架構設計中的“坑”。可以說,軟件架構的迭代歷史就是一部不折不扣的“挖坑和填坑”的歷史。

時至今日,微服務架構早已從概念階段走到了有大量應用的巔峰階段。從技術層面上講,Spring Cloud、Docker和Kubernetes已經成為事實上的標杆;從商業層面上講,微服務架構也已經實現了“利用技術上的確定性來應對業務端的不確定性”這一關鍵目標。作為新時代的軟件研發人員,不管你是從一開始就使用微服務,還是從原本的分布式架構向微服務架構轉型,都非常有必要深入學習微服務落地實踐的方方面面。因此,我們急需一本理論與實踐相結合,能夠結合實際案例講解的圖書。本書的出版可以說填補了這一空缺。

當我拿到這本書的樣章時,有一種驚喜的感覺,因為這是目前為數不多的由國人出品的面向初學者的微服務架構實戰類圖書。當我懷著欣喜的心情讀了本書的部分章節後,不僅感受到幾位作者多年來對微服務架構在實際項目中落地的深刻理解和認識,而且發現這是一本學習曲線非常平滑,但又不失技術先進性和工程實戰性的微服務實戰好書。

其實,市面上各自講解Spring Cloud、Docker和Kubernetes的書不在少數,但是本書使用了一個貫穿全書的優惠券實戰項目,通過實際項目的需求驅動方式,將Spring Boot、Spring Cloud的核心知識點與Docker容器技術及容器編排領域的標杆Kubernetes結合,做到了技術路徑上的一脈相承。

本書既有理論體繫上庖丁解牛、細致入微的分析和講解,又有面向初學者的實戰技術指導和具體實踐說明,從而讓讀者對企業落地微服務架構的方案與最佳實踐有了一個更全面、更體繫化的認識。可以說,本書是軟件開發人員繫統性地認識微服務架構、實踐微服務架構“躬身入局”的必讀佳作。


茹炳晟

騰訊 技術工程事業群 基礎架構部 T4級專家

騰訊研究院 特約研究員



前言



寫作初衷

在這裡,筆者想和大家聊聊筆者與這本書的緣分。一個偶然的機會,編輯老師問筆者,是否有意願寫一本面向初學者的微服務與容器化的實戰圖書。編輯老師話雖短,但包含的信息量著實不小,既要介紹微服務和容器化的實用技術,又要讓初學者能夠讀懂,還要緊扣實戰。一番思索之後,筆者欣然應允。

自微服務架構的概念在2012年由Fred George提出以來,至今已經過了近十個年頭。在這期間,隨著互聯網和雲服務技術的蓬勃發展,微服務架構也逐漸從“陽春白雪”走入了“尋常百姓家”。Spring Cloud作為微服務領域的弄潮兒,利用Spring Boot提供的“開箱即用”的特性,極大地簡化了分布式繫統基礎設施的構建。借助Docker容器化技術和Kubernetes容器編排技術,我們可以輕松地實現微服務應用的跨平臺快速部署和彈性伸縮。Spring Cloud+Docker+Kubernetes的組合已經逐漸成為各大公司落地微服務架構的首選方案。

本書特色

新版本:針對Spring Cloud Hoxton.SR5版本+Spring Boot 2.2.x.RELEASE版本。

專注實踐:全書風格緊貼實戰,學練結合。通過一個優惠券實戰項目貫穿全書章節,帶讀者體驗將單體應用逐步改造為微服務應用的全過程。

技術全面:實戰案例涵蓋了Spring Boot、Spring Cloud核心組件庫和容器化技術的知識點,介紹了Spring Boot的核心功能和服務治理組件Eureka及Nacos,講解了Spring Cloud的第二代網關組件Spring Cloud Gateway、負載均衡組件Ribbon、服務間調用組件OpenFeign、配置中心組件Spring Cloud Config、批量消息推送組件Bus、服務容錯組件Hystrix+Turbine+Dashboard、防流量哨兵組件Sentinel、鏈路追蹤組件Sleuth+Zipkin+ELK、消息驅動組件Stream,分析了分布式事務框架Seata和用於DevOps實踐的Docker容器化技術、Kubernetes容器編排技術及下一代微服務技術Service Mesh。

低門檻:本書為初學者構建了非常友好的學習曲線,通過實戰項目手把手帶讀者從Spring Boot應用的核心功能模塊入手,逐漸過渡到微服務和容器化部分。

深入剖析:對於書中的知識點,通過實戰案例向讀者展示業界主流的微服務架構最佳實踐。

適用讀者

本書適合具備一定Java基礎的開發人員及對微服務架構和Spring Cloud技術、容器編排技術感興趣的讀者。對處在微服務架構轉型期的團隊來說,本書具有很大的實踐指導價值。

本書內容

本書共22章,每章的具體內容如下:

第1章:熱身運動。

這一章主要介紹了在進行Spring Boot開發之前所需的準備工作,例如相關常識的介紹、常規軟件的安裝和開發環境的搭建等,此後再通過幾個例子介紹了Java Web應用開發的進化史。

第2章:Spring Boot介紹。

這一章首先簡單介紹了Spring框架的歷史並穿插了一些業界趣聞,然後講解了Spring框架的基石技術IoC、AOP及Spring主要組件,接著解釋了Spring Boot出現的契機及原因,最後重點介紹了Spring Boot的工作原理、組件及如何利用Spring Boot進行應用開發。

第3章:Spring Boot實戰。

這一章主要通過優惠券項目細致地講解了如何基於Spring Boot進行項目實戰開發,先用Spring Boot構建應用的核心功能,再循序漸進地引入更多主流開源軟件與項目集成,以實現更豐富的應用功能來應對各種各樣的開發場景。

第4章:微服務與Spring Cloud。

這一章首先介紹微服務架構的理念及服務拆分規範,然後介紹目前一線大廠的服務治理方案,接著介紹Spring Cloud及Netflix組件庫和Alibaba組件庫,最後介紹實戰項目中采用的微服務技術選型方案。

第5章:使用Eureka實現服務治理。

這一章首先向讀者介紹服務治理的概念和Spring Cloud中常用的服務注冊中心,然後著重介紹Eureka的核心概念和微服務生命周期的管理流程,最後通過實戰項目落地一套高可用化的注冊中心方案。

第6章:使用Nacos實現服務治理。

這一章首先介紹如何安裝Nacos,並對Eureka和Nacos做了簡單比較,最後演示了如何使用Nacos實現服務治理。

第7章:使用Ribbon實現負載均衡。

這一章介紹了負載均衡的基本概念,並針對Ribbon內置的負載均衡策略及各個負載均衡策略適用的業務場景,探討了Ribbon的IPing機制,最後通過將Ribbon集成到實戰案例來鞏固學習效果。

第8章:使用OpenFeign實現服務間調用。

在這一章中,為了避免煩瑣的REST API調用流程,我們通過Feign組件實現了一種類似於“本體方法調用”的簡易步驟,我們隻需要定義一個Feign接口,就可以將該接口注入Java類中實現遠程REST API調用。我們還深入介紹了Feign組件的工作原理,以及Feign的超時配置和數據壓縮配置。

第9章:使用Hystrix實現服務間容錯。

這一章通過一個“服務雪崩”的例子來理解服務容錯的幾種常規手段,進而學習Hystrix如何通過服務降級、服務熔斷和線程隔離的方式實現服務容錯。在這個過程中,我們還介紹了Hystrix的兩個好搭檔,即分別用來聚合服務調用數據的Turbine和服務大盤監控組件的Hystrix Dashboard。

第10章:使用Sentinel實現限流控制。

這一章首先介紹了如何安裝Sentinel,再介紹了Hystrix和Sentinel之間的異同,最後演示了如何使用Sentinel在不同場景下對服務進行限流控制。

第11章:使用Spring Cloud Config和Bus搭建配置中心。

這一章首先介紹了分布式配置中心在微服務架構中的用途,然後落地了一套Spring Cloud Config+GitHub的遠程配置中心,最後通過集成Bus組件實現了配置項的動態推送。在這個過程中,我們還介紹了如何對配置中心進行高可用化改造,以及如何使用對稱密鑰和非對稱密鑰將敏感信息進行加密存儲。

第12章:使用Spring Cloud Gateway搭建服務網關。

這一章介紹了Spring Cloud的第二代網關組件Spring Cloud Gateway,它與Nginx這類外部網關不同,Spring Cloud Gateway主要用來承接經由外部網關導向微服務集群的服務請求,並基於這些服務請求的路徑及參數等信息做服務轉發。除了介紹如何設置請求轉發規則,我們還介紹了如何在網關層添加過濾器和限流規則(底層采用Redis+Lua實現限流)。

第13章:使用Sleuth進行調用鏈路追蹤。

在一個大型微服務繫統中完成一個復雜的業務流程可能需要調用數十個微服務模塊,從調用鏈分析及線上故障排查的角度來看,我們需要將每一次服務請求中的所有調用鏈路通過某種標記串聯起來。這一章介紹了一款調用鏈路“打標工具”Sleuth,通過對Sleuth底層數據結構的介紹使讀者了解它的工作原理,並將打標後的日志信息傳輸到Zipkin和ELK組件中,實現調用鏈路分析和日志檢索功能。

第14章:使用Stream集成消息隊列。

這一章介紹了如何通過Stream組件簡化微服務應用與消息隊列組件的對接,我們首先介紹了發布訂閱、消費組和消費分區三個重要場景,然後通過實際案例介紹了消息的異常處理手段,比如本機重試、消息重新入隊、降級流程和死信隊列,最後介紹了消息隊列的一個特殊場景“延遲消息”。

第15章:使用Seata實現分布式事務。

這一章首先介紹分布式事務的基本概念,再通過傳統的XA事務模式了解分布式事務所要解決的問題,了解XA模式在高並發場景下的性能瓶頸。然後,我們引出阿裡開源的Seata分布式事務框架,了解Seata內置的多種分布式事務解決方案。在這個過程中,我們重點學習Seata官方推薦的AT方案,深入學習AT方案的原理及讀寫隔離策略。最後,我們將AT方案集成到實戰項目中。

第16章:走進容器化的世界。

這一章是容器部分的起始章節,重點介紹了微服務落地的難點:高內聚和低耦合需求、異構部署需求、雲原生12因素、康威定律等,以及如何通過容器化技術來攻克難點。這一章縱向分析了容器技術的前世今生和未來展望,橫向比對了不同容器技術的差異和選擇。

第17章:Docker容器技術。

這一章從HelloWorld起步,介紹了Docker的安裝和容器的部署;講述了Docker的整體架構和核心概念,包括鏡像、容器、存儲、網絡、倉庫等;並以貫穿全書的優惠券項目為例,講解了微服務Docker容器化改造的實戰細節。

第18章:Kubernetes基礎。

這一章是容器部分的核心章節,從容器編排的概念到Kubernetes的整體框架,從Kubernetes的集群搭建到Pod、Controller、Namespace的控制管理,完整地闡述了Kubernetes容器編排的基礎。本章針對優惠券項目,講解了應該如何采用無狀態部署的方式進行應用容器的編排管理。

第19章:Kubernetes網絡互聯。

這一章介紹了Kubernetes的網絡互聯模型和主流的服務發現、負載均衡方式。本章針對優惠券項目,實戰了不同類型的應用部署和服務發現手段。

第20章:Kubernetes數據存儲。

這一章介紹了Kubernetes的數據存儲模型,以及Volume卷、ConfigMap和Secret的管理。本章針對優惠券項目講解了環境變量加載和應用磁盤掛載的實戰細節。

第21章:Kubernetes高級功能。

這一章從安全性、可用性、擴展性、易用性、可觀察性等多個角度描述了容器化部署的非功能性需求,並以優惠券項目為示範,實現了整套應用的高可用、彈性擴展和監控告警。

第22章:Service Mesh。

這一章的核心是微服務的非侵入式治理。本章重點描述了Service Mesh的興起和優勢、Istio框架的原理和架構,以及如何實現服務流量治理、服務安全增強、自動化監控追蹤。最後,以優惠券項目的全透明授權驗證和拓撲監控收尾。

第1章~第3章,第6章,第10章,作者卿睿;第4章,第5章,第7章~第9章,第11章~第15章,作者姚秋辰;第16章~第22章,作者張昕。

相關資源:

本書提供了一個GitHub項目供讀者學習和實踐,其中包括優惠券項目的所有源碼。若讀者在啟動項目的過程中遇到異常報錯,可以參考GitHub根目錄下的README文檔中的解決方案。具體下載方式可以參考下方(或封底)的讀者服務。

作 者

2021年9月1日

.


查看全部↓



"
 
網友評論  我們期待著您對此商品發表評論
 
相關商品
在線留言 商品價格為新臺幣
關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
返回頂部