徹底改變Spring Cloud的生態: 使用Docker實作微服務架構
作者 | 周立 |
---|---|
出版社 | 聯合發行股份有限公司 |
商品描述 | 徹底改變Spring Cloud的生態: 使用Docker實作微服務架構:本書涵蓋了微服務理論、開發框架(SpringCloud)以及執行平台(Docker)三大主題。●Part1(第1章):有系統的介 |
作者 | 周立 |
---|---|
出版社 | 聯合發行股份有限公司 |
商品描述 | 徹底改變Spring Cloud的生態: 使用Docker實作微服務架構:本書涵蓋了微服務理論、開發框架(SpringCloud)以及執行平台(Docker)三大主題。●Part1(第1章):有系統的介 |
內容簡介 本書涵蓋了微服務理論、開發框架 (Spring Cloud) 以及執行平台 (Docker) 三大主題。● Part 1 (第1章):有系統的介紹微服務架構;● Part 2 (第2~11章):使用Spring Cloud開發框架編寫一個「電影售票系統」;● Part 3 (第12~14章):說明如何將微服務實際執行在Docker平台上。全書採用精心設計的Demo驅動,以連貫的場景、真實的程式範例,來引導讀者學習如何使用強大的微服務技術實現架構設計。本書涵蓋最新版本架構所獨具的技術特性、技巧及案例,幫助讀者避開升級過程中可能遭遇到的困難與陷阱。更多理論性的內容 (如Cloud Native、12-factor APP、DDD等) 在文中皆以「延伸閱讀」、「Tips」或「Warning」的形式註記,提供有興趣的讀者依此專研,擴展視野。隨著業務的發展、程式的堆砌,公司專案變得日益臃腫、複雜、開發效率低落、難以維護?我們迫切需要能夠解放生產力的新技術--微服務架構Spring Cloud!作者為 Spring Cloud 社區的創辦者之一,以實戰開發者的豐富經驗,將設定簡單、設計優雅的 Spring Cloud 所有相關的基礎知識和工具的使用,做完整而精闢的剖析。
作者介紹 ■作者簡介周立
產品目錄 chapter 01 微服務架構概述1.1 單體應用架構存在的問題1.2 如何解決單體應用架構存在的問題1.3 什麼是微服務1.4 微服務架構的優點與挑戰1.5 微服務設計原則1.6 如何實現微服務架構chapter 02 微服務開發架構--Spring Cloud2.1 Spring Cloud簡介2.2 Spring Cloud特點2.3 Spring Cloud版本chapter 03 開始使用Spring Cloud實戰微服務3.1 Spring Cloud實戰前提3.2 服務提供者與服務消費者3.3 撰寫服務提供者3.4 撰寫服務消費者3.5 為專案整合Spring Boot Actuator3.6 強制寫入有哪些問題chapter 04 微服務註冊與發現4.1 服務發現簡介4.2 Eureka簡介4.3 Eureka原理4.4 撰寫Eureka Server4.5 將微服務註冊到Eureka Server上4.6 Eureka Server的高可用4.7 使用者認證4.8 Eureka的中繼資料4.9 Eureka Server的REST端點4.10 Eureka的自我保護模式4.11 多網路卡環境下的IP選擇4.12 Eureka的健康檢查4.13 排除Jersey依賴chapter 05 使用Ribbon實現用戶端側負載平衡5.1 Ribbon簡介5.2 為服務消費者整合Ribbon5.3 Ribbon設定自訂5.4 脫離Eureka使用Ribbon5.5 饑餓載入chapter 06 使用Feign實現宣告式REST呼叫6.1 Feign簡介6.2 為服務消費者整Feign6.3 自訂Feign設定6.4 手動建立Feign6.5 Feign對繼承的支援6.6 Feign對壓縮的支援6.7 Feign的記錄檔6.8 使用Feign建置多參數請求6.9 使用Feign上傳檔案chapter 07 使用Hystrix實現微服務的容錯處理7.1 實現容錯的方法7.2 使用Hystrix實現容錯7.3 Hystrix的監控7.4 使用Hystrix Dashboard視覺化監控資料7.5 使用Turbine聚合監控資料chapter 08 使用Zuul建置微服務閘道8.1 為什麼要使用微服務閘道8.2 Zuul簡介8.3 撰寫Zuul微服務閘道8.4 管理端點8.5 路由設定詳解8.6 Zuul的安全與Header8.7 使用Zuul上傳檔案8.8 Zuul的篩檢程式8.9 Zuul的容錯與回復8.10 饑餓載入8.11 Query String編碼8.12 Hystrix隔離策略與執行緒池8.13 Zuul的高可用8.14 使用Sidecar整合非JVM微服務8.15 使用Zuul聚合微服務chapter 09 使用Spring Cloud Config統一管理微服務設定9.1 為什麼要統一管理微服務設定9.2 Spring Cloud Config簡介9.3 撰寫Config Server9.4 撰寫Config Client9.5 Config Server的Git倉庫設定詳解9.6 Config Server的健康狀況指示器9.7 設定內容的加解密9.8 使用 refresh端點手動更新設定9.9 使用Spring Cloud Bus自動更新設定9.10 Spring Cloud Config與Eureka配合使用9.11 Spring Cloud Config的使用者認證9.12 Config Server的高可用chapter 10 使用Spring Cloud Sleuth實現微服務追蹤10.1 為什麼要實現微服務追蹤10.2 Spring Cloud Sleuth簡介10.3 整合Spring Cloud Sleuth10.4 Spring Cloud Sleuth與ELK配合使用10.5 Spring Cloud Sleuth與Zipkin配合使用chapter 11 Spring Cloud常見問題與歸納11.1 Eureka常見問題11.2 整合Hystrix後第一次請求失敗11.3 Turbine聚合的資料不完整11.4 Spring Cloud各元件逾時11.5 Spring Cloud各元件重試11.6 Spring Cloud11.7 Spring Cloud各元件設定屬性11.8 Spring Cloud定位問題想法歸納chapter 12 Docker入門12.1 Docker簡介12.2 版本與疊代計畫12.3 Docker的架構12.4 安裝Docker12.5 設定映像檔加速器12.6 Docker常用指令chapter 13 將微服務執行在Docker上13.1 使用Dockerfile建置Docker映像檔13.2 使用Docker Registry管理Docker映像檔13.3 使用Maven外掛程式建置Docker映像檔13.4 常見問題與歸納chapter 14 使用Docker Compose編排微服務14.1 Docker Compose簡介14.2 安裝Docker Compose14.3 Docker Compose快速入門14.4 docker-compose.yml常用指令14.5 docker-compose常用指令14.6 Docker Compose網路設定14.7 綜合實戰:使用Docker Comose編排Spring Cloud微服務14.8 常見問題與歸納app A 附錄A-1 本書搭配程式A-2 Spring Cloud YES--快速開發腳手架A-3 使用Docker快速安裝本書中的元件
書名 / | 徹底改變Spring Cloud的生態: 使用Docker實作微服務架構 |
---|---|
作者 / | 周立 |
簡介 / | 徹底改變Spring Cloud的生態: 使用Docker實作微服務架構:本書涵蓋了微服務理論、開發框架(SpringCloud)以及執行平台(Docker)三大主題。●Part1(第1章):有系統的介 |
出版社 / | 聯合發行股份有限公司 |
ISBN13 / | 9789863797098 |
ISBN10 / | 986379709X |
EAN / | 9789863797098 |
誠品26碼 / | 2681666534009 |
頁數 / | 400 |
注音版 / | 否 |
裝訂 / | P:平裝 |
語言 / | 1:中文 繁體 |
尺寸 / | 23X17X2.3CM |
級別 / | N:無 |
導讀 : 前言
隨著業務的發展,筆者當時所在公司的專案越來越臃腫。隨著程式的堆砌,專案變得越來越複雜、開發效率越來越低、越來越難以維護,夥伴們苦不堪言,毫無幸福感可言。
我們迫切需要能夠解放生產力、放飛夥伴的「良藥」,於是,微服務進入視野。然而,微服務究竟是什麼,眾說紛紜,沒有人能說清楚什麼是微服務。不僅如此,大家對微服務的態度也是涇渭分明,吹捧者、貶低者比比皆是,在筆者的QQ群、微信群中硝煙四起。筆者參加了不少交流會,感覺許多分享常常停留在理論階段。一場會下來,覺得似乎懂了,卻苦於沒有對應的技術堆疊去實現這些理論。
Docker、Jenkins等工具筆者均有涉獵,然而使用什麼技術堆疊去實作微服務架構,在很長時間內都是筆者心中的疑問。
2015年中,筆者偶然在GitHub上看到一個名為Spring Cloud的架構,它以Spring
Boot為基礎,設定簡單、設計優雅,並且大多元件經過了生產環境的考驗。筆者花1個月左右的時間詳細研究了Spring
Cloud的相關元件後,體會更深。然而,技術選型必須進行客觀、多維度、全方位的分析,而不應由我個人的主觀意見作為決定因素。文件豐富程度、社區活躍度、技術堆疊生態、開發效率、執行效率、成功案例等,都是我們選型的重要因素。經過研究,其他幾點都很OK,只缺成功案例—在當時,國內幾乎沒什麼成功案例,甚至連中文的部落格、相關資料都沒有。
這讓筆者陷入兩難,在這一過程中,公司一邊繼續使用阿里巴巴開放原始碼的Dubbo(Dubbo雖然非常流行,但畢竟有段時間沒有維護了,開放原始碼生態也不是很好),一邊在筆者的組織下進行一些Spring
Cloud相關的技術分享。一方面是希望借此開拓夥伴們的視野,另一方面也希望能將兩者相互印證,看是否可在現有平台上參考Spring
Cloud的設計或使用其部分元件。
2016年8月,筆者有幸代表公司參加了全球微服務架構高峰討論區。會上,Josh Long對Spring
Cloud的說明在現場引起了不小的轟動,也讓筆者眼前為之一亮。會後筆者諮詢Josh,Spring
Cloud是否可用於生產、是否大規模使用、國內是否已有成功案例,對方一一給予肯定的答覆。此一回覆消除了筆者最後的一點疑慮,開始考慮從Dubbo逐步移轉至Spring
Cloud的規劃與方案。會後,筆者心想,不妨將Spring
Cloud相關知識歸納成一個「系列部落格」,一來是加深自己的了解,二來也算是豐富Spring
Cloud的中文資料。於是,筆者建立自己的部落格(http://www.itmuch.com),並開始了系列部落格的撰寫。寫了兩篇後,筆者將部落格連結分享到微信群中,沒成想,剛好被Josh
Long看到,並引用至Spring官方部落格中。這讓筆者感到無比榮幸的同時,也讓自己貢獻開放原始碼社區的欲望空前強烈,於是乎,一口氣又寫了兩篇。
再後來,筆者成立了微服務/Spring
Cloud/Docker相關的QQ群(157525002),在QQ群夥伴的鼓勵下,筆者決定寫一本Spring
Cloud開放原始碼書(github.com/eacdy/spring-cloud-book),沒想到竟然獲得開放原始碼中國的推薦。再然後,筆者在許進的邀請下,聯合創辦了Spring
Cloud中國社區。最後,在群管理員馮靖的引薦下,認識了網紅級的高手張開濤,開濤幫忙引薦了電子工業出版社編輯俠少。從此,筆者正式撰寫實體書。
本以為,有了開放原始碼書的撰寫經驗,實體書應該是較為輕鬆的一件事。然而,樣稿發出後,卻被俠少鄙視⋯⋯主要是語文是體育老師教的,病句滿天飛,況且,理論不是我的專長。期間一度想要放棄,多虧了俠少的鼓勵,總算堅持寫了下去⋯⋯。
倉促完稿之際,感慨萬千,激動與感激交織,於是,本段不可免俗,進入老生常談的「鳴謝」環節—感謝我的家人,寫書是件費時費力的功夫,在近半年的時間,我的父母和妻子給予我相當大的支援;感謝電子工業出版社夥伴們的辛苦工作,沒有劉佳禾、孫奇俏、俠少等可愛的朋友們,我的書不可能問世;衷心感謝丁露、馮靖、張英磊、王天青、吳峻申(N本書的作者)在百忙之中幫忙校對;衷心感謝QQ群、微信群的朋友們,你們給了筆者最大的幫助和支援!(註:排名不分先後。)
特別鳴謝:感謝吳峻申對筆者提出很多中肯實用的建議和意見;感謝張英磊幫忙重繪、美化書中絕大部分架構圖。
謹以此書獻給想要學習微服務、Spring
Cloud、Docker又不知從何開始的讀者朋友們。希望本書能切切實實地幫助你使用特定技術堆疊實現微服務架構的落地,也希望本書不會令你失望。本書很多理論性的內容並未展開,例如Cloud
Native、12-factor
APP、DDD等,但筆者都在文中延伸閱讀、Tips或Warning的形式進行註記,這部分內容希望讀者能夠自行延伸閱讀。本書書附程式碼放在Github上,網址為:「github.com/eacdy/spring-cloud-study」。
最佳賣點 : 隨著業務的發展、程式的堆砌,公司專案變得日益臃腫、複雜、開發效率低落、難以維護?我們迫切需要能夠解放生產力的新技術──微服務架構Spring Cloud!