Spring Cloud微服務實戰 ( 簡體 字) |
作者:翟永超 | 類別:1. -> 程式設計 -> JAVA -> Spring 2. -> 程式設計 -> 雲計算 |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 46630 詢問書籍請說出此書號!【缺書】 NT售價: 445 元 |
出版日:4/1/2017 |
頁數:440 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121313011 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:推薦序一
我和Java很有緣,2003年在富士通南大實習的時候,就開始用Struts/JSP/Hibernate/ MySQL做第一個Java項目——SPIF。 工作之后,主要做J2EE的開發,并開始慢慢接觸和使用Spring。加入EMC之后,很有幸和Spring成為一個大家庭(EMC收購了VMware,VMware收購了Spring)。2012年,我和Spring Data/XD的負責人Mark Pollack在中國開過一次小會,和他探討了一些關于Data Pipeline的想法。后來我也看了很多Josh Long(龍應春)的演講視頻,并在2016年終于有幸能夠與他在一個技術大會上同場演講,并在會議之后做了很多深入溝通。 2015年上半年,我讀了兩本書:The Phoenix Project和Migrating to Cloud-Native Application Architectures,讓我對DevOps、微服務和云原生架構有了初步的認識,也讓我對Netflix的那套OSS套件有了一個初步印象。 我是在2015年9月加入麻袋理財之后開始接觸Spring Boot的,試用之后感覺它很神奇,再也沒有被Spring之前那些煩瑣配置所束縛。當時正好和一個架構師討論要做一個項目的升級改造,決定采用Spring Boot和微服務架構。開始的時候,服務治理還是用了Dubbo。之后因為對Spring Cloud有了比較深刻的認識,在之后一個全新項目上,我們完全按照微服務架構,使用Spring Boot和Cloud進行開發,并采用CI/CD自動化流程和容器化部署。 因為使用了Spring Cloud,讓我對Spring Cloud的相關信息特別關注。一個偶然的機會,我認識了Spring Cloud中國社區的負責人許進、翟永超(本書作者)和周立,探討了很多使用Spring Cloud的經驗,感覺與他們和Spring Cloud相見恨晚。 翟永超本人寫了很多關于Spring Cloud使用的博客,不同于一般作者,他寫的內容更加貼近實際,是自己工作經驗的深刻總結,可以拿來直接用于生產。 有一次我們聊到關于配置中心(Spring Cloud Config)如何在生產中使用,他解答了我很多問題,并告訴我他寫了一本書,書中就會包含這些內容。這讓我對這本書充滿期待。后面也有幸見到了本人,一個瘦瘦高高的書生,一看就是一個很有內涵的技術人。暢聊之后,翟永超就把書發給了我,讓我先睹為快。 我把翟永超的書仔細拜讀了一遍,最大的收獲就是讓我對Spring Cloud的認識又上升了一個層次。我之前對Spring Cloud的理解更多的是知其然,但是卻不知道其所以然,對Spring Cloud里面的邏輯知之甚少。而讀了翟永超的《Spring Cloud微服務實戰》一書后,讓我對Spring Cloud各個組件的認識提升了一個層次,同時也讓我對Spring Cloud各個組件的實現原理有了初步的認識,因此我建議所有打算將Spring Cloud用于生產的朋友一定要好好讀一下這本書。
王天青 DaoCloud 首席架構師 2017年3月
推薦序二
2016年10月開始,我在冰鑒科技負責微服務架構遷移相關的調研和籌建工作。我比較了Dubbo、Dubbox、Motan、Spring Cloud等框架后,最終鎖定在Spring Cloud上。這是一個非常年輕的框架,關于它的中文文檔少之又少,更不用說有深度的技術干貨了。 當我的團隊在利用搜索引擎進行相關檢索時,永超的技術博客十分顯眼地排在了前列,我非常感激他貢獻的這個系列的文章,這在我們團隊做微服務架構遷移的工作中,起到了關鍵作用。后來有一天,我倆在一個架構群中相識,一番討論后發現是博主本人并且他有寫書計劃時,我告訴了我的團隊,我們不謀而合地決定要在該書出版時迅速收入囊中,做到人手一本。而今天對于我來說更是非常榮幸,能夠給永超的新書寫推薦序。 Spring Cloud是一個微服務架構實施的綜合性解決框架,而在如何構建微服務的選擇上,由于我們團隊是從SSM(Spring + Spring MVC + MyBatis)框架開始演進的,基于讓演進中改動最小的初衷,我們決定使用Spring Boot做微服務構建。我們從對Spring Boot的調研開始就一直關注著永超的技術博客,在第一次接觸 Spring Boot 的時候就被它“習慣優于配置”的設計概念深深吸引,這無疑簡化了做業務邏輯開發同事的工作量,也使得他們可以不用關注配置細節。本書中也有關于Spring Boot基礎知識的詳細講解以及一個案例工程帶你快速構建屬于你的第一個微服務。 如開頭所述,為了將系統微服務化,我們也一直在對 Spring Cloud 進行相關調研。這本書也是國內市場上為數不多的、全面講解 Spring Cloud 微服務的中文圖書。本書詳細講解了 Spring Cloud 生態的各類組件,涵蓋了服務治理組件 Eureka、客戶端負載均衡組件 Ribbon、服務容錯保護組件Hystrix、聲明式服務調用組件 Feign、API 網關治理組件Zuul、分布式配置中心組件 Config、消息總線組件 Bus、消息驅動組件 Stream、分布式服務跟蹤組件 Sleuth。這包含了我們在實施微服務中需要深入了解的各個輪子,是一本需要仔細研讀、反復閱讀的精品之作。 最后,預祝永超在Spring Cloud的學習和工作中再創佳績,也希望讀者朋友能夠在閱讀完本書后快速地搭建好實施微服務過程中的基礎腳手架,并在未來工作中能夠將團隊的一些實踐通過Spring Cloud中國社區進行交流,為開源貢獻自己的一份力量。
朱清 冰鑒科技信息技術部總監 Spring Cloud中國社區聯合創始人 2017.03.27
推薦序三
收到本書作者翟永超的邀請為這本書寫推薦序,其實我是很謹慎的。抱著對讀者負責、對技術嚴謹的態度,不能在完全不懂Spring Cloud的基礎上妄加評論。就像2009年的云計算和現在的大數據,“Big data is like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it.”。所以我概讀了書中的內容,的確是一本好書,特別是在基于技術實踐的闡述中又不失對“微服務化”理論層面的講解以及發展演進過程的說明。 結合在云計算行業中為大量企業級客戶做的服務案例,“集中化”的系統架構確實在企業級客戶業務中受到越來越多的挑戰,隨著業務變化對IT需求的不斷增加,處于逐漸失控的狀態。CIO們受到越來越大的挑戰,希望做到數據驅動業務,那第一個階段就要做去中心化的改造。如書中所闡述,“微服務化”其實并不是簡單的技術革新,而是對團隊組織,系統架構,系統研發,自動化測試、發布、運維都提出了一系列的變革要求。所以我覺得,不管是架構師、運維經理、研發主管還是CIO都可以從本書中有所收獲。 同樣,阿里云的企業級中間件EDAS(基于阿里系的Dubbo開源項目)配合強大的飛天云平臺與Docker服務的支持,在大中型企業客戶業務中得到更多的驗證,如森馬服飾、來伊份、正佳廣場、中石化的易派客電商平臺等。與這些商業化的中間件產品相比,Spring Cloud得到了更多熱衷開源項目的人的支持,相信在有足夠團隊技術能力的保障下,也會取得越來越多的成功案例。書如其人,值得認真拜讀,我會推薦給更多的人,為翟永超點贊。
李俊濤 上海駐云科技執行總監
推薦語
本書從時下流行的微服務架構概念出發,結合Spring Cloud的解決方案,深入淺出地剖析了其在構建微服務架構中所需的各個基礎設施和技術要點,包括服務治理、容錯保護、API網關、配置管理、消息總線等。作者不僅對如何使用各個組件做了詳細介紹,還從原理上做了很多分析,可以幫助讀者更好地理解Spring Cloud的運行原理,這有助于我們在實戰中有效地排錯和做進一步擴展。本書是微服務架構方面非常不錯的實戰書籍,強烈推薦正在做微服務實踐或打算實施微服務的團隊作為參考資料。 南志文 百聯全渠道研發總監
Spring Cloud的誕生對于沒有足夠資金投入或者技術儲備實力的技術團隊是一種福音。利用Spring Cloud的一站式解決方案,可以很輕松地搭建起微服務架構的軟件系統,大大減少了開發成本,從容應對業務的快速發展。本書是國內第一本Spring Cloud的實戰書籍,給我帶來了無限驚喜。作者由淺入深地講解了基于Spring Cloud構建微服務所需要的各個核心組件,并配有大量實戰代碼,理論和實踐兼備,讀后收獲頗豐。強烈推薦給每一位對Spring Cloud感興趣或是打算使用Spring Cloud的技術人員閱讀。
覃羅春 德比軟件產品開發負責人
當下最火的詞無外乎就是“微服務”了,但是很多創業公司想要實現微服務架構體系還需要做很多方面的工作才可以逐步實現,所需花費的成本還是較大的。而近年來Spring Boot/Cloud生態架構體系的出現為行業提供了一站式解決方案,解決了不少公司的架構選型和維護方面的難題。本書是國內第一本以Spring Cloud為技術藍本的微服務類實戰書籍,不僅結合實際案例介紹了Spring Cloud的使用,還從源碼的角度深入分析了原理實現,強烈推薦每一位開發者和架構師收藏和學習。
程超 合眾支付資深技術專家
隨著微服務架構的興起,企業IT架構開始變革,國內出現首批微服務實戰布道者。本書作者翟永超,作為Spring Cloud中國社區聯合發起人和國內首批Spring Cloud實踐與布道者,發表的博文超過數百萬次訪問量。他的《Spring Cloud微服務實戰》一書,包含大量生產實戰經驗,把Spring Cloud常用組件通過案例剖析,可幫助企業和開發者快速實施微服務架構。
許進(xujin.org) Spring Cloud中國社區創始人 中間件高級研發工程師
近幾年,微服務概念逐漸深入人心,國內各家互聯網公司都引入了相應的實踐。而被應用最多的就是Spring Cloud這套被戲稱為“全家桶”的微服務框架。它幾乎實現了微服務的所有功能,而且又完美符合微服務的基礎理論,可幫助大家提高工作效率。但是,國內關于Spring Cloud的中文資料相對比較匱乏,很多學習者遍尋入門而不得。在此大背景下,有一些有識之士無私貢獻了自己的綿薄之力,本書作者翟永超就是其中一位。這本書對于廣大需要在公司中實踐微服務的人們來說絕對是一本可以快速上手實現微服務的工作手冊。我希望這本書猶如一顆種子,能在國內互聯網環境的土壤中生根發芽,最后變成一棵參天大樹。
吳峻申 上海青客機器人有限公司架構師
前言
“微服務”架構在這幾年被廣泛傳播,變得非常火熱,以至于關于微服務架構相關的開源框架和工具都變得越來越活躍,比如:Netflix OSS、Dubbo、Apache Thrift等。Spring Cloud也因為Spring社區在企業應用領域的廣泛知名度和強大影響力,受到了廣大架構師與開發者的高度關注。 從接觸Spring Cloud開始,我除了被其龐大的項目結構震撼之外,還被其所要完成的遠大目標所吸引。該項目不同于其他Spring的優秀項目,它不再是一個基礎框架類,而是一個更高層次的、架構視角的綜合性大型項目,其目標旨在構建一套標準化的微服務解決方案,讓架構師、開發者在使用微服務理念構建應用系統的時候,面對各個環節的問題都可以找到相應的組件來處理。引用網友戲稱的一個比喻:Spring Cloud可以說是Spring社區為微服務架構提供的一個“全家桶”套餐。由于“套餐”中的組件通過一個社區進行包裝與整合,使得“套餐”中各個組件之間的配合變得更加和諧,這可以有效減少我們在組件的選型和整合上花費的精力,所以它可以幫助我們快速構建起基礎的微服務架構系統。 雖然,Spring Cloud提供了很多我們期待的內容,但是因其涵蓋的內容非常廣泛,并且知識跨度較大,因此對于很多初學者來說就像被專業名詞轟炸了一樣,入門的難度也就大大提高了。同時,中文文檔與資料的匱乏,以及官方文檔的內容對于使用描述并不夠細致等問題,也直接提升了使用者的學習門檻。這些看似都不是什么大問題,但是卻在一定程度上阻礙了Spring Cloud在國內的推廣與發展,畢竟任何一項優秀技術都需要有大批的實踐者才能得到不斷優化、完善和發揚光大。作為一名Spring社區的忠實粉絲和長期實踐者,自然希望可以有更多的開發者可以參與到Spring Cloud的使用和貢獻中來,筆者也就萌生了想要編寫一些入門文章的念頭,一方面對自身知識的掌握做一些整理,另一方面也希望這些內容可以成為后來者的學習資料。于是就開始堅持著寫了一些基礎的入門文章和示例,沒有想到會受到不少Spring愛好者的持續關注,在創建了相關的QQ交流群之后,短短一個月的時間,交流群的人數就突破了1000人。由于在交流過程中發現很多問題重復出現,而這些問題并沒有得到很好的整理,也沒有辦法被搜索引擎收錄,于是就創建了Spring Cloud中文社區論壇,以幫助收集交流過程中提出和解決的各種問題,方便將來學習者可以搜索到這些前人踩過的坑。 之后,有幸在電子工業出版社計算機出版分社的張春雨先生的邀請下,開始編寫這本關于Spring Cloud的入門書籍。在這本書的編寫期間,由于工作、家庭等因素,使得與大家交流的時間變得越來越少,但好在有諸多網友和熱心愛好者幫忙一起維護著交流群與論壇,為大家提供了很多寶貴的學習資源,我也從中得到了不少啟發和收獲。同時,感謝后來建議并牽頭整合目前國內Spring Cloud學習資源的許進,他在此期間承擔了很多溝通和網站維護工作,為Spring Cloud中國社區付出了不少精力,后續我也會重新加入進來,繼續編寫在線免費入門教程,以幫助更多的愛好者快速入門Spring Cloud。我們也歡迎更多的愛好者參與進來,一起為社區貢獻力量,以幫助Spring Cloud在國內被更好地應用與成長。 |
內容簡介:本書從時下流行的微服務架構概念出發,詳細介紹了Spring Cloud針對微服務架構中幾大核心要素的解決方案和基礎組件。對于各個組件的介紹,本書主要以示例與源碼結合的方式來幫助讀者更好地理解這些組件的使用方法以及運行原理。同時,在介紹的過程中,還包含了作者在實踐中所遇到的一些問題和解決思路,可供讀者在實踐中作為參考。本書適合所有Java開發人員,尤其適合正在做微服務架構技術選型或正在實施微服務架構的團隊查閱和參考。 |
目錄:第1章 基礎知識 1 什么是微服務架構 1 與單體系統的區別 1 如何實施微服務 2 為什么選擇Spring Cloud 6 Spring Cloud簡介 7 版本說明 8 第2章 微服務構建:Spring Boot 11 框架簡介 12 快速入門 13 項目構建與解析 13 實現RESTful API 17 配置詳解 20 配置文件 20 自定義參數 22 參數引用 22 使用隨機數 23 命令行參數 23 多環境配置 24 加載順序 25 監控與管理 26 初識actuator 27 原生端點 28 小結 38 第3章 服務治理:Spring Cloud Eureka 39 服務治理 39 Netflix Eureka 40 搭建服務注冊中心 41 注冊服務提供者 43 高可用注冊中心 46 服務發現與消費 48 Eureka詳解 51 基礎架構 52 服務治理機制 52 源碼分析 56 配置詳解 65 服務注冊類配置 65 服務實例類配置 67 跨平臺支持 71 第4章 客戶端負載均衡:Spring Cloud Ribbon 73 客戶端負載均衡 73 RestTemplate詳解 75 GET請求 75 POST請求 77 PUT請求 79 DELETE請求 79 源碼分析 80 負載均衡器 91 負載均衡策略 109 配置詳解 123 自動化配置 124 Camden版本對RibbonClient配置的優化 125 參數配置 127 與Eureka結合 127 重試機制 128 第5章 服務容錯保護:Spring Cloud Hystrix 130 快速入門 131 原理分析 135 工作流程 135 斷路器原理 144 依賴隔離 148 使用詳解 151 創建請求命令 151 定義服務降級 154 異常處理 157 命令名稱、分組以及線程池劃分 158 請求緩存 159 請求合并 166 屬性詳解 172 Command屬性 174 collapser屬性 184 threadPool屬性 185 Hystrix儀表盤 187 Turbine集群監控 192 構建監控聚合服務 192 與消息代理結合 196 第6章 聲明式服務調用:Spring Cloud Feign 199 快速入門 200 參數綁定 202 繼承特性 205 Ribbon配置 209 全局配置 209 指定服務配置 209 重試機制 210 Hystrix配置 211 全局配置 211 禁用Hystrix 211 指定命令配置 212 服務降級配置 212 其他配置 214 請求壓縮 214 日志配置 215 第7章 API網關服務:Spring Cloud Zuul 217 快速入門 219 構建網關 220 請求路由 221 請求過濾 223 路由詳解 226 傳統路由配置 226 服務路由配置 228 服務路由的默認規則 229 自定義路由映射規則 229 路徑匹配 230 路由前綴 233 本地跳轉 234 Cookie與頭信息 235 Hystrix和Ribbon支持 236 過濾器詳解 238 過濾器 238 請求生命周期 239 核心過濾器 240 異常處理 244 禁用過濾器 256 動態加載 257 動態路由 257 動態過濾器 261 第8章 分布式配置中心:Spring Cloud Config 267 快速入門 267 構建配置中心 268 配置規則詳解 269 客戶端配置映射 272 服務端詳解 274 基礎架構 274 Git配置倉庫 276 SVN配置倉庫 279 本地倉庫 279 本地文件系統 279 健康監測 280 屬性覆蓋 281 安全保護 281 加密解密 282 高可用配置 286 客戶端詳解 286 URI指定配置中心 287 服務化配置中心 287 失敗快速響應與重試 290 獲取遠程配置 292 動態刷新配置 293 第9章 消息總線:Spring Cloud Bus 295 消息代理 295 RabbitMQ實現消息總線 296 基本概念 297 安裝與使用 298 快速入門 302 整合Spring Cloud Bus 306 原理分析 307 指定刷新范圍 308 架構優化 309 RabbitMQ配置 310 Kafka實現消息總線 312 Kafka簡介 312 快速入門 313 整合Spring Cloud Bus 315 Kafka配置 318 深入理解 318 源碼分析 320 其他消息代理的支持 342 第10章 消息驅動的微服務:Spring Cloud Stream 344 快速入門 344 核心概念 349 綁定器 350 發布-訂閱模式 351 消費組 353 消息分區 354 使用詳解 355 開啟綁定功能 355 綁定消息通道 356 消息生產與消費 360 響應式編程 366 消費組與消息分區 368 消息類型 370 綁定器詳解 373 綁定器SPI 373 自動化配置 374 多綁定器配置 374 RabbitMQ與Kafka綁定器 376 配置詳解 376 基礎配置 377 綁定通道配置 377 綁定器配置 379 第11章 分布式服務跟蹤:Spring Cloud Sleuth 386 快速入門 386 準備工作 386 實現跟蹤 389 跟蹤原理 390 抽樣收集 392 與Logstash整合 394 與Zipkin整合 397 HTTP收集 398 消息中間件收集 402 收集原理 404 數據存儲 414 API接口 417 附錄A Starter POMs 419 后記 421 |
序: |