具體描述
作 者:方誌朋 著作 定 價:69 齣 版 社:人民郵電齣版社 齣版日期:2018年03月01日 頁 數:262 裝 幀:平裝 ISBN:9787115475220 1. 深入淺齣講解Spring Cloud組件、開發工具、框架等知識點。2. 使讀者全麵理解微服務的構建原理。3. 實例豐富,解釋清晰,易於讀者真正理解原理,並學以緻用。4. 深入講解Spring Cloud OAuth2,直擊市場需求痛點。
●目 錄 * 1章 微服務簡介11.1 單體架構及其存在的不足11.1.1 單體架構簡介11.1.2 單體架構存在的不足21.1.3 單體架構使用服務器集群及存在的不足21.2 微服務31.2.1 什麼是微服務41.2.2 微服務的優勢81.3 微服務的不足91.3.1 微服務的復雜度91.3.2 分布式事務91.3.3 服務的劃分111.3.4 服務的部署111.4 微服務和SOA的關係121.5 微服務的設計原則12* 2章 Spring Cloud簡介142.1 微服務應該具備的功能142.1.1 服務的注冊與發現152.1.2 服務的負載均衡152.1.3 服務的容錯172.1.4 服務網關182.1.5 服務配置的統一管理192.1.6 服務鏈路追蹤202.2 Spring Cloud212.2.1 簡介212.2.2 常用組件212.2.3 項目一覽錶232.3 Dubbo簡介242.4 Spring Cloud與Dubbo比較252.5 Kubernetes簡介262.6 Spring Could與Kubernetes比較272.7 總結29第3章 構建微服務的準備303.1 JDK的安裝303.1.1 JDK的下載和安裝303.1.2 環境變量的配置303.2 IDEA的安裝313.2.1 IDEA的下載313.2.2 用IDEA創建一個Spring Boot工程323.2.3 用IDEA啓動多個Spring Boot工程實例343.3 構建工具Maven的使用353.3.1 Maven簡介353.3.2 Maven的安裝353.3.3 Maven的核心概念373.3.4 編寫Pom文件373.3.5 Maven構建項目的生命周期393.3.6 常用的Maven命令40第4章 開發框架Spring Boot434.1 Spring Boot簡介434.1.1 Spring Boot的特點434.1.2 Spring Boot的優點444.2 用IDEA構建Spring Boot工程444.2.1 項目結構444.2.2 在Spring Boot工程中構建Web454.2.3 Spring Boot的測試464.3 Spring Boot配置文件詳解464.3.1 自定義屬性474.3.2 將配置文件的屬性賦給實體類474.3.3 自定義配置文件494.3.4 多個環境的配置文件504.4 運行狀態監控Actuator504.4.1 查看運行程序的健康狀態524.4.2 查看運行程序的Bean534.4.3 使用Actuator關閉應用程序554.4.4 使用shell連接Actuator564.5 Spring Boot整閤JPA574.6 Spring Boot整閤Redis604.6.1 Redis簡介604.6.2 Redis的安裝604.6.3 在Spring Boot中使用Redis604.7 Spring Boot整閤Swagger2,搭建Restful API在綫文檔62第5章 服務注冊和發現Eureka665.1 Eureka簡介665.1.1 什麼是Eureka665.1.2 為什麼選擇Eureka665.1.3 Eureka的基本架構675.2 編寫Eureka Server675.3 編寫Eureka Client705.4 源碼解析Eureka735.4.1 Eureka的一些概念735.4.2 Eureka的高可用架構745.4.3 Register服務注冊745.4.4 Renew服務續約785.4.5 為什麼Eureka Client獲取服務實例這麼慢805.4.6 Eureka 的自我保護模式805.5 構建高可用的Eureka Server集群815.6 總結83第6章 負載均衡Ribbon846.1 RestTemplate簡介846.2 Ribbon簡介856.3 使用RestTemplate和Ribbon來消費服務856.4 LoadBalancerClient簡介886.5 源碼解析Ribbon90第7章 聲明式調用Feign1017.1 寫一個Feign客戶端1017.2 FeignClient詳解1057.3 FeignClient的配置1067.4 從源碼的角度講解Feign的工作原理1077.5 在Feign中使用HttpClient和OkHttp1107.6 Feign是如何實現負載均衡的1127.7 總結114第8章 熔斷器Hystrix1158.1 什麼是Hystrix1158.2 Hystrix解決瞭什麼問題1158.3 Hystrix的設計原則1178.4 Hystrix的工作機製1178.5 在RestTemplate和Ribbon上使用熔斷器1188.6 在Feign上使用熔斷器1198.7 使用Hystrix Dashboard監控熔斷器的狀態1208.7.1 在RestTemplate中使用Hystrix Dashboard1208.7.2 在Feign中使用Hystrix Dashboard1238.8 使用Turbine聚閤監控124第9章 路由網關Spring Cloud Zuul1269.1 為什麼需要Zuul1269.2 Zuul的工作原理1269.3 案例實戰1289.3.1 搭建Zuul服務1289.3.2 在Zuul上配置API接口的版本號1319.3.3 在Zuul上配置熔斷器1329.3.4 在Zuul中使用過濾器1339.3.5 Zuul的常見使用方式135* 10章 配置中心Spring Cloud Config13710.1 Config Server從本地讀取配置 文件13710.1.1 構建Config Server13710.1.2 構建Config Client13810.2 Config Server從遠程Git倉庫讀取配置文件14010.3 構建高可用的Config Server14110.3.1 構建Eureka Server14110.3.2 改造Config Server14210.3.3 改造Config Client14310.4 使用Spring Cloud Bus刷新配置144* 11章 服務鏈路追蹤Spring Cloud Sleuth14711.1 為什麼需要Spring Cloud Sleuth14711.2 基本術語14711.3 案例講解14811.3.1 構建Zipkin Server14811.3.2 構建User Service14911.3.3 構建Gateway Service15111.3.4 項目演示15211.4 在鏈路數據中添加自定義數據15311.5 使用RabbitMQ 傳輸鏈路數據15411.6 在MySQL數據庫中存儲鏈路數據15511.6.1 使用Http傳輸鏈路數據,並存儲在MySQL數據庫中15611.6.2 使用RabbitMQ傳輸鏈路數據,並存儲在MySQL數據庫中15711.7 在ElasticSearch中存儲鏈路數據15811.8 用Kibana展示鏈路數據159* 12章 微服務監控Spring Boot Admin16112.1 使用Spring Boot Admin監控Spring Cloud微服務16112.1.1 構建Admin Server16112.1.2 構建Admin Client16312.2 在Spring Boot Admin中集成Turbine16612.2.1 改造Eureka Client16612.2.2 另行構建Eureka Client16712.2.3 構建Turbine工程16812.2.4 在Admin Server中集成Turbine16912.3 在Spring Boot Admin中添加安全登錄界麵172* 13章 Spring Boot Security詳解17413.1 Spring Security簡介17413.1.1 什麼是Spring Security17413.1.2 為什麼選擇Spring Security17413.1.3 Spring Security提供的安全模塊17513.2 Spring Boot Security與Spring Security的關係17613.3 Spring Boot Security案例詳解17613.3.1 構建Spring Boot Security工程17613.3.2 配置Spring Security17813.3.3 編寫相關界麵18013.3.4 Spring Security方法級彆上的保護18513.3.5 從數據庫中讀取用戶的認證信息18813.4 總結193* 14章 使用Spring Cloud OAuth2保護微服務係統19514.1 什麼是OAuth219514.2 如何使用Spring OAuth219614.2.1 OAuth2 Provider19614.2.2 OAuth2 Client20014.3 案例分析20114.3.1 編寫Eureka Server20214.3.2 編寫Uaa授 權服務20214.3.3 編寫service-hi資源服務20914.4 總結215* 15章 使用Spring Security OAuth2和JWT保護微服務係統21715.1 JWT簡介21715.1.1 什麼是JWT21715.1.2 JWT的結構21815.1.3 JWT的應用場景21915.1.4 如何使用JWT21915.2 案例分析21915.2.1 案例架構設計21915.2.2 編寫主Maven工程22015.2.3 編寫Eureka Server22115.2.4 編寫Uaa授 權服務22215.2.5 編寫user-service資源服務22715.3 總結236* 16章 使用Spring Cloud構建微服務綜閤案例23716.1 案例介紹23716.1.1 工程結構23716.1.2 使用的技術棧23816.1.3 工程架構23816.1.4 功能展示24016.2 案例詳解24416.2.1 準備工作24416.2.2 構建主Maven工程24416.2.3 構建eureka-server工程24516.2.4 構建config-server工程24616.2.5 構建zipkin-service工程24716.2.6 構建monitoring-service工程24816.2.7 構建uaa-service工程25016.2.8 構建gateway-service工程25116.2.9 構建admin-service工程25316.2.10 構建user-service工程25316.2.11 構建blog-service工程25616.2.12 構建log-service工程25616.3 啓動源碼工程26016.4 項目演示26116.5 總結262
內容簡介
本書共分16章,全麵涵蓋瞭Spring Cloud構建微服務相關的知識點。* 1、2章詳細介紹瞭微服務架構和Spring Cloud。第3、4章講解瞭用Spring Cloud構建微服務的準備工作。第5~12章以案例為切入點,講解瞭Spring Cloud構建微服務的基礎組件,包括Eureka、Ribbon、Feign、Hystrix、Zuul、Config、Sleuth、Admint等組件。* 13~15章講述瞭使用Spring Cloud OAuth2來保護微服務係統的相關知識。* 16章用一個綜閤案例,全麵講解瞭如何使用Spring Cloud構建微服務,可以作為實際開發的樣例工程。本書既適閤Spring Cloud初學者入門使用,又適閤正在做微服務實踐的架構師或打算實施微服等 方誌朋 著作 方誌朋,畢業於武漢理工大學碩士學位。CSDN博客專傢、Spring Cloud中國社區聯閤創始人。對技術有著狂熱的追求,活躍於各大技術社區,包括CSDN、GitHub、掘金、簡書、Spring Cloud中國社區。
《解構雲原生:Kubernetes實戰指南》 內容梗概: 《解構雲原生:Kubernetes實戰指南》並非一本純粹的技術手冊,而是一次深度探索和實踐的旅程,旨在引領讀者從宏觀的雲原生理念齣發,逐步深入到Kubernetes這個現代應用部署與管理的核心利器。本書的價值在於其清晰的邏輯脈絡、豐富的實戰案例以及對復雜概念的深入淺齣解讀,緻力於幫助開發者、運維工程師以及架構師們構建、部署、擴展和管理其雲原生應用。 本書的起點,並非直接跳入Kubernetes的各種命令和API,而是首先構建一個堅實的雲原生思維模型。我們將從“為什麼需要雲原生?”這個根本性問題齣發,探討其背後的驅動力,包括敏捷開發的需求、彈性伸縮的必要性、容器化帶來的標準化優勢,以及微服務架構在分布式環境下的挑戰與機遇。在此基礎上,我們將詳細闡述容器技術(以Docker為代錶)的核心概念,如鏡像、容器、倉庫等,並解釋容器化如何為微服務提供輕量級、隔離性強且可移植的運行環境。 隨後,本書將重心轉移到Kubernetes本身。我們不會僅僅羅列其組件和功能,而是深入剖析Kubernetes的架構設計,包括其核心組件(API Server, etcd, Controller Manager, Scheduler)和工作節點組件(Kubelet, Kube-proxy, Container Runtime)的職責與協作方式。理解這些底層機製,是後續深入掌握Kubernetes各種高級特性的基礎。 本書的核心篇幅將集中在Kubernetes的四大核心抽象對象:Pod, Service, Deployment, 和StatefulSet。我們會詳細講解每個對象的概念、用途、YAML文件結構以及它們如何協同工作來管理和暴露應用。例如,在講解Pod時,我們將深入探討Pod的生命周期、就緒探針、存活探針的重要性,以及如何通過Init Containers和Sidecar模式來增強Pod的功能。在Service部分,我們將區分ClusterIP, NodePort, LoadBalancer等不同的Service類型,並講解Kubernetes如何實現服務的發現與負載均衡。Deployment將作為本書的重頭戲之一,我們不僅會講解如何創建和管理無狀態應用,還會深入探討滾動更新、迴滾、金絲雀發布等高級部署策略,以及如何通過ReplicaSet和Resource Quotas來保障應用的可用性和資源使用。對於有狀態應用,StatefulSet的講解將是關鍵,我們將深入分析其與Deployment的區彆,以及如何利用PersistentVolume和PersistentVolumeClaim來管理有狀態應用的數據持久化。 除瞭基礎資源的管理,本書還將觸及Kubernetes在實際生産環境中的關鍵考量。我們將詳細講解網絡模型,包括CNI(Container Network Interface)插件的作用,以及Pod間通信、Service網絡以及Ingress Controller的原理。安全性是雲原生應用部署的重中之重,因此,本書將 devote considerable attention to Kubernetes Security。我們將深入探討RBAC(Role-Based Access Control)的配置,Namespace的隔離作用,Secrets和ConfigMaps的管理,以及Pod Security Policies(雖然已棄用,但其理念仍有參考價值)和Network Policies的應用。 在部署和運維方麵,本書將涵蓋CI/CD流水綫與Kubernetes的集成。我們將介紹如何利用Jenkins, GitLab CI, Argo CD等工具,將代碼構建、鏡像打包、部署到Kubernetes的整個流程自動化。 Helm,作為Kubernetes的包管理工具,也將得到詳細的講解,包括Chart的創建、依賴管理以及如何使用Helm來簡化應用的部署和升級。 本書不會止步於Kubernetes的部署和管理,還將觸及更廣泛的雲原生生態係統。我們將會探討監控與日誌解決方案,如Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana),以及如何將它們集成到Kubernetes集群中,實現對應用和基礎設施的全麵監控與日誌分析。此外,分布式追蹤(如Jaeger, Zipkin)在排查微服務問題中的作用也將得到闡述。 為瞭使本書更具實踐指導意義,每個章節都將配有豐富的代碼示例、YAML配置文件以及詳細的操作步驟。我們會從簡單的Hello World應用開始,逐步構建更復雜的微服務場景,例如,如何將多個微服務部署到Kubernetes,如何配置服務發現,如何實現API網關,以及如何處理數據庫等有狀態服務的部署。本書還會包含一些常見的Kubernetes運維場景和故障排除指南,幫助讀者在遇到問題時能夠快速定位和解決。 本書的受眾廣泛,無論是初次接觸Kubernetes的新手,還是希望深入理解其工作原理和高級特性的開發者和運維人員,都能從中受益。對於那些正在探索或已經邁入雲原生轉型的組織而言,《解構雲原生:Kubernetes實戰指南》將是他們構建健壯、可伸縮、高可用雲原生應用的寶貴參考。本書的目標是讓讀者不僅學會“怎麼做”,更能理解“為什麼這樣做”,從而在雲原生時代遊刃有餘。 本書特色: 理論與實踐深度結閤: 在講解Kubernetes核心概念的同時,提供大量貼近實際的部署和管理案例,幫助讀者快速上手。 循序漸進的知識體係: 從雲原生理念到容器化基礎,再到Kubernetes核心組件和高級特性,構建清晰的學習路徑。 豐富的配置示例與操作指南: 提供詳盡的YAML配置和詳細的操作步驟,確保讀者可以輕鬆復現和應用。 關注生産環境的關鍵考量: 深入探討網絡、安全、監控、日誌、CI/CD等生産環境必須考慮的要素。 全麵覆蓋雲原生生態: 除瞭Kubernetes本身,還涉及Docker、Helm、Prometheus、Grafana等關鍵工具。 深入淺齣的講解風格: 力求將復雜的技術概念用通俗易懂的語言解釋清楚,降低學習門檻。 《解構雲原生:Kubernetes實戰指南》不僅是技術學習的工具,更是您邁嚮雲原生時代的信心之源。