關(guān)于我們
書單推薦
新書推薦
|
Spring Cloud Alibaba 微服務(wù)架構(gòu)實戰(zhàn)派(上下冊) 讀者對象:本書適合對微服務(wù)架構(gòu)感興趣的開發(fā)人員。
本書覆蓋了微服務(wù)架構(gòu)的主要技術(shù)點,包括分布式服務(wù)治理、分布式配置管理、分布式流量防護、分布式事務(wù)處理、分布式消息處理、分布式網(wǎng)關(guān)、分布式鏈路追蹤、分布式Job、分庫分表、讀寫分離、分布式緩存、服務(wù)注冊/訂閱路由、全鏈路藍綠發(fā)布和灰度發(fā)布。在講解這些技術(shù)點,采用“是什么→怎么用→什么原理(源碼解析)”的主線來講解。為了方便讀者在企業(yè)中落地Spring Cloud Alibaba項目,本書還包括幾個相對完整的項目實戰(zhàn):全鏈路日志平臺、中臺架構(gòu)、數(shù)據(jù)遷移平臺、業(yè)務(wù)鏈路告警平臺。本書的目標(biāo)是:①讓讀者在動手中學(xué)習(xí),而不是“看書時好像全明白了,一動手卻發(fā)現(xiàn)什么都不會”;②讀者可以掌握微服務(wù)全棧技術(shù),而不僅僅是Spring Cloud Alibaba框架,對于相關(guān)的技術(shù)(Seata、RocketMQ),基本都是從零講起,這樣避免了讀者為了學(xué)會微服務(wù)技術(shù),得找Spring Cloud Alibaba的書、Seata的書、RocketMQ的書……本書是一站式解決方案。
2012年畢業(yè)于杭州電子科技大學(xué)自動化學(xué)院,碩士研究生。一名工作10年的IT老兵,曾就職于網(wǎng)易、連連支付等杭州獨角獸企業(yè)。從Java工程師開始,一路“打怪升級”成為“獨角獸”公司的高級技術(shù)專家、資深架構(gòu)師和技術(shù)負(fù)責(zé)人,是一名技術(shù)狂熱愛好者。個人微信公眾號“架構(gòu)治理之道”和“百萬架構(gòu)治理之道”。
★入門篇
第1章 進入Spring Cloud Alibaba的世界 /2 1.1 了解微服務(wù)架構(gòu) /2 1.1.1 單體架構(gòu)與微服務(wù)架構(gòu)的區(qū)別 /2 1.1.2 分布式架構(gòu)與微服務(wù)架構(gòu)的區(qū)別 /6 1.2 如何構(gòu)建微服務(wù)架構(gòu) /8 1.2.1 構(gòu)建微服務(wù)架構(gòu)的目標(biāo) /8 1.2.2 構(gòu)建微服務(wù)架構(gòu)的關(guān)鍵點 /8 1.3 認(rèn)識Spring Cloud Alibaba /11 1.4 學(xué)習(xí)Spring Cloud Alibaba的建議 /12 1.4.1 熟悉Spring Boot /12 1.4.2 熟悉Spring Cloud /13 1.4.3 Spring Cloud Alibaba的版本演進 /14 1.5 Spring Cloud Alibaba與Spring Cloud的關(guān)系 /15 1.6 搭建基礎(chǔ)環(huán)境 /16 1.6.1 安裝Maven /16 1.6.2 熟悉Git /18 第2章 熟用開發(fā)工具 /19 2.1 安裝開發(fā)工具IntelliJ IDEA /19 2.2 【實例】用Spring Cloud Alibaba開發(fā)一個RESTful API服務(wù) /20 2.3 了解Spring Framework官方開發(fā)工具STS /24 2.4 了解Spring Framework官方腳手架工具 /25 ★基礎(chǔ)篇 第3章 Spring Cloud Alibaba基礎(chǔ)實戰(zhàn) /28 3.1 Spring Cloud Alibaba“牛刀小試” /28 3.1.1 【實例】實現(xiàn)樂觀鎖 /28 3.1.2 【實例】實現(xiàn)多數(shù)據(jù)源 /32 3.1.3 【實例】實現(xiàn)SQL語句中表名的動態(tài)替換 /35 3.2 【實例】用Maven和Spring Cloud Alibaba實現(xiàn)多環(huán)境部署 /36 3.2.1 初始化 /37 3.2.2 多環(huán)境配置 /37 3.2.3 構(gòu)建 /38 3.2.4 效果演示 /41 3.3 【實例】用“MyBatis-Plus + Spring Cloud Alibaba”實現(xiàn)多租戶架構(gòu) /42 3.3.1 多租戶的概念 /42 3.3.2 多租戶的原理 /42 3.3.3 架構(gòu) /44 3.3.4 搭建及效果演示 /46 第4章 分布式服務(wù)治理——基于Nacos /48 4.1 認(rèn)識分布式服務(wù)治理 /48 4.1.1 什么是分布式服務(wù)治理 /48 4.1.2 為什么需要分布式服務(wù)治理 /49 4.2 了解主流的注冊中心 /50 4.2.1 Nacos /50 4.2.2 ZooKeeper /51 4.2.3 Consul /52 4.2.4 Sofa /53 4.2.5 Etcd /53 4.2.6 Eureka /54 4.2.7 對比Nacos、ZooKeeper、Sofa、Consul、Etcd和Euraka /54 4.3 將應(yīng)用接入Nacos 注冊中心 /55 4.3.1 【實例】用“Nacos Client + Spring Boot”接入 /55 4.3.2 【實例】用Spring Cloud Alibaba Discovery接入 /57 4.4 用“NacosNamingService類 + @EnableDiscoveryClient”實現(xiàn)服務(wù)的注冊/訂閱 /59 4.4.1 服務(wù)注冊的原理 /59 4.4.2 服務(wù)訂閱的原理 /69 4.4.3 【實例】通過服務(wù)冪等性設(shè)計驗證服務(wù)的注冊/訂閱 /74 4.5 用“Ribbon + Nacos Client”實現(xiàn)服務(wù)發(fā)現(xiàn)的負(fù)載均衡 /82 4.5.1 為什么需要負(fù)載均衡 /82 4.5.2 【實例】用“Ribbon + Nacos Client”實現(xiàn)負(fù)載均衡 /83 4.6 用CP模式和AP模式來保持注冊中心的數(shù)據(jù)一致性 /88 4.6.1 了解CAP理論 /88 4.6.2 了解Nacos的CP模式和AP模式 /89 4.6.3 了解Raft與Soft-Jraft /90 4.6.4 Nacos注冊中心AP模式的數(shù)據(jù)一致性原理 /91 4.6.5 Nacos注冊中心CP模式的數(shù)據(jù)一致性原理 /96 4.6.6 【實例】用持久化的服務(wù)實例來驗證注冊中心的數(shù)據(jù)一致性 /104 4.7 用緩存和文件來存儲Nacos的元數(shù)據(jù) /106 4.7.1 認(rèn)識Nacos的元數(shù)據(jù) /106 4.7.2 用緩存存儲Nacos的元數(shù)據(jù) /108 4.7.3 用文件存儲Nacos的元數(shù)據(jù) /110 4.7.4 【實例】用Spring Cloud Alibaba整合Nacos和Dubbo的元數(shù)據(jù) /111 4.8 用Nacos Sync來實現(xiàn)應(yīng)用服務(wù)的數(shù)據(jù)遷移 /114 4.8.1 為什么要進行應(yīng)用服務(wù)的數(shù)據(jù)遷移 /115 4.8.2 如何完成應(yīng)用服務(wù)的數(shù)據(jù)遷移 /116 4.8.3 【實例】將Eureka注冊中心中的應(yīng)用服務(wù)數(shù)據(jù)遷移到Nacos注冊中心中 /117 第5章 分布式配置管理——基于Nacos /122 5.1 認(rèn)識分布式配置管理 /122 5.1.1 什么是分布式配置管理 /122 5.1.2 為什么需要分布式配置管理 /123 5.2 了解主流的配置中心 /124 5.2.1 Nacos /124 5.2.2 Spring Cloud Config /126 5.2.3 Apollo /127 5.2.4 對比Nacos、Spring Cloud Config、Apollo和Disconf /127 5.3 將應(yīng)用接入Nacos配置中心 /128 5.3.1 接入方式 /128 5.3.2 認(rèn)識Nacos配置中心的配置信息模型 /128 5.3.3 了解NacosConfigService類 /129 5.3.4 【實例】用Nacos Client接入應(yīng)用 /129 5.3.5 【實例】用Open API接入應(yīng)用 /132 5.3.6 【實例】用Spring Cloud Alibaba Config接入應(yīng)用 /134 5.4 用HTTP協(xié)議和gRPC框架實現(xiàn)通信渠道 /137 5.4.1 什么是gRPC /137 5.4.2 “用HTTP實現(xiàn)Nacos Config通信渠道”的原理 /137 5.4.3 “用‘長輪詢 + 注冊監(jiān)聽器’機制將變更之后的配置信息同步到應(yīng)用”的原理 /141 5.4.4 “用gRPC框架實現(xiàn)客戶端與Nacos Config Server之間通信渠道”的原理 /148 5.4.5 【實例】用“采用gRPC通信渠道的Nacos Config”實現(xiàn)配置數(shù)據(jù)的動態(tài)更新 /151 5.5 用“Sofa-Jraft + Apache Derby”保證配置中心的數(shù)據(jù)一致性 /152 5.5.1 Nacos配置中心的數(shù)據(jù)一致性原理 /153 5.5.2 【實例】用“切換所連接的Nacos節(jié)點”驗證數(shù)據(jù)一致性 /159 5.6 用數(shù)據(jù)庫持久化配置中心的數(shù)據(jù) /161 5.6.1 為什么需要持久化 /161 5.6.2 持久化的基礎(chǔ)配置 /162 5.6.3 持久化的原理 /162 5.6.4 【實例】用“配置信息的灰度發(fā)布”驗證持久化 /165 5.7 用“Spring Cloud Alibaba Config + Nacos Config”實現(xiàn)配置管理(公共配置、應(yīng)用配置和擴展配置) /168 5.7.1 “按照優(yōu)先級加載屬性”的原理 /168 5.7.2 【實例】驗證公共配置、應(yīng)用配置和擴展配置的優(yōu)先級順序 /172 第6章 分布式流量防護——基于Sentinel /175 6.1 認(rèn)識分布式流量防護 /175 6.1.1 什么是分布式流量防護 /175 6.1.2 為什么需要分布式流量防護 /177 6.2 認(rèn)識Sentinel /179 6.3 將應(yīng)用接入Sentinel /180 6.3.1 搭建Sentinel控制臺 /180 6.3.2 【實例】用Sentinel Core手動地將應(yīng)用接入Sentinel /181 6.3.3 【實例】用Spring Cloud Alibaba Sentinel將應(yīng)用接入Sentinel /183 6.4 用HTTP或者Netty實現(xiàn)通信渠道 /184 6.4.1 認(rèn)識NIO框架Netty /184 6.4.2 用SPI機制實現(xiàn)插件化通信渠道的原理 /184 6.4.3 “用插件類NettyHttpCommandCenter實現(xiàn)通信渠道”的原理 /189 6.4.4 “用SimpleHttpCommandCenter類實現(xiàn)通信渠道”的原理 /192 6.4.5 【實例】用Netty實現(xiàn)通信渠道,實現(xiàn)“從應(yīng)用端到Sentinel控制臺的流量控制規(guī)則推送” /196 6.5 用過濾器和攔截器實現(xiàn)組件的適配 /198 6.5.1 什么是過濾器和攔截器 /198 6.5.2 “Sentinel通過過濾器適配Dubbo”的原理 /199 6.5.3 “Sentinel通過攔截器適配Spring MVC”的原理 /203 6.5.4 【實例】將Spring Cloud Gateway應(yīng)用接入Sentinel,管理流量控制規(guī)則 /206 6.6 用“流量控制”實現(xiàn)流量防護 /208 6.6.1 什么是流量控制 /208 6.6.2 槽位(Slot)的動態(tài)加載機制 /210 6.6.3 “加載應(yīng)用運行的監(jiān)控指標(biāo)”的原理 /214 6.6.4 “用QPS/并發(fā)線程數(shù)實現(xiàn)流量控制”的原理 /216 6.6.5 “用調(diào)用關(guān)系實現(xiàn)流量控制”的原理 /222 6.6.6 【實例】通過控制臺實時地修改QPS驗證組件的流量防控 /224 6.7 用“熔斷降級”實現(xiàn)流量防護 /227 6.7.1 什么是熔斷降級 /227 6.7.2 “實現(xiàn)熔斷降級”的原理 /228 6.7.3 【實例】用“模擬Dubbo服務(wù)故障”驗證服務(wù)調(diào)用熔斷降級的過程 /235 6.8 用“系統(tǒng)自適應(yīng)保護”實現(xiàn)流量防護 /239 6.8.1 什么是“系統(tǒng)自適應(yīng)保護” /239 6.8.2 “系統(tǒng)自適應(yīng)保護”的原理 /240 6.8.3 【實例】通過調(diào)整應(yīng)用服務(wù)的入口流量和負(fù)載,驗證系統(tǒng)自適應(yīng)保護 /243 6.9 用Nacos實現(xiàn)規(guī)則的動態(tài)配置和持久化 /247 6.9.1 為什么需要“規(guī)則的動態(tài)配置” /247 6.9.2 為什么需要“規(guī)則的持久化” /248 6.9.3 “規(guī)則的動態(tài)配置”的原理 /248 6.9.4 “規(guī)則的持久化”的原理 /255 6.9.5 【實例】將Dubbo應(yīng)用接入Sentinel,實現(xiàn)規(guī)則的動態(tài)配置和持久化 /257 ★中級篇 第7章 分布式事務(wù)處理——基于Seata /264 7.1 認(rèn)識分布式事務(wù) /264 7.1.1 什么是分布式事務(wù) /264 7.1.2 為什么需要分布式事務(wù) /267 7.2 認(rèn)識Seata /268 7.2.1 Seata的基礎(chǔ)概念 /268 7.2.2 Seata的事務(wù)模式 /269 7.3 將應(yīng)用接入Seata /274 7.3.1 搭建Seata Server的高可用環(huán)境 /274 7.3.2 【實例】使用seata-spring-boot-starter將應(yīng)用接入Seata /279 7.3.3 【實例】使用Spring Cloud Alibaba 將應(yīng)用接入Seata /282 7.4 用Netty實現(xiàn)客戶端與服務(wù)器端之間的通信渠道 /284 7.4.1 “用Netty實現(xiàn)通信渠道的服務(wù)器端”的原理 /284 7.4.2 “用Netty實現(xiàn)通信渠道的客戶端”的原理 /289 7.5 用攔截器和過濾器適配主流的RPC框架 /295 7.5.1 “用過濾器適配Dubbo”的原理 /295 7.5.2 “用攔截器適配gRPC”的原理 /297 7.6 用AT模式實現(xiàn)分布式事務(wù) /299 7.6.1 “用數(shù)據(jù)源代理實現(xiàn)AT模式的零侵入應(yīng)用”的原理 /299 7.6.2 “用全局鎖實現(xiàn)AT模式第二階段的寫隔離”的原理 /304 7.6.3 【實例】搭建Seata的AT模式的環(huán)境,并驗證AT模式的分布式事務(wù) 場景 /317 7.7 用TCC模式實現(xiàn)分布式事務(wù) /327 7.7.1 用GlobalTransactionScanner類掃描客戶端,開啟TCC動態(tài)代理 /327 7.7.2 用攔截器TccActionInterceptor校驗TCC事務(wù) /330 7.7.3 【實例】搭建Seata的TCC模式的環(huán)境,并驗證TCC模式的分布式事務(wù)場景 /332 7.8 用XA模式實現(xiàn)分布式事務(wù) /343 7.8.1 “用數(shù)據(jù)源代理實現(xiàn)XA模式的零侵入應(yīng)用”的原理 /343 7.8.2 用XACore類處理XA模式的事務(wù)請求 /350 7.8.3 【實例】搭建Seata的XA模式的客戶端運行環(huán)境,并驗證XA模式的 分布式事務(wù)回滾的效果 /353 7.9 用Saga模式實現(xiàn)分布式事務(wù) /362 7.9.1 “用狀態(tài)機實現(xiàn)Saga模式”的原理 /363 7.9.2 【實例】搭建Seata的Saga模式的客戶端運行環(huán)境,并驗證Saga模式的分布式事務(wù)場景 /367 第8章 分布式消息處理——基于RocketMQ /374 8.1 消息中間件概述 /374 8.1.1 什么是消息中間件 /374 8.1.2 為什么需要消息中間件 /375 8.1.3 認(rèn)識RocketMQ /376 8.2 搭建RocketMQ的運行環(huán)境 /379 8.2.1 了解RocketMQ的安裝包 /379 8.2.2 搭建單Master的單機環(huán)境 /380 8.2.3 搭建多Master的集群環(huán)境 /380 8.2.4 搭建單Master和單Slave的集群環(huán)境 /382 8.2.5 搭建Raft集群環(huán)境 /384 8.2.6 【實例】用RocketMQ Admin控制臺管控RocketMQ /386 8.3 將應(yīng)用接入RocketMQ /386 8.3.1 【實例】用rocketmq-spring-boot-starter框架將應(yīng)用接入RocketMQ /387 8.3.2 【實例】用spring-cloud-starter-stream-rocketmq框架將應(yīng)用接入 RocketMQ /389 8.4 用Netty實現(xiàn)RocketMQ的通信渠道 /392 8.4.1 用NettyRemotingClient類實現(xiàn)客戶端的通信渠道 /393 8.4.2 用NettyRemotingServer類實現(xiàn)服務(wù)器端的通信渠道 /395 8.5 用“異步”“同步”和“最多發(fā)送一次”模式生產(chǎn)消息 /400 8.5.1 用“異步”模式生產(chǎn)消息的原理 /400 8.5.2 用“同步”模式生產(chǎn)消息的原理 /403 8.5.3 用“最多發(fā)送一次”模式生產(chǎn)消息的原理 /405 8.5.4 【實例】在Spring Cloud Alibaba項目中生產(chǎn)同步消息和異步消息 /407 8.6 用Push模式和Pull模式消費消息 /410 8.6.1 “用Push模式消費消息”的原理 /410 8.6.2 “用Pull模式消費消息”的原理 /421 8.6.3 【實例】生產(chǎn)者生產(chǎn)消息,消費者用Pull模式和Push模式消費消息 /431 8.7 用兩階段提交和定時回查事務(wù)狀態(tài)實現(xiàn)事務(wù)消息 /437 8.7.1 什么是事務(wù)消息 /437 8.7.2 兩階段提交的原理 /437 8.7.3 定時回查事務(wù)狀態(tài)的原理 /447 8.7.4 【實例】在Spring Cloud Aliaba項目中生產(chǎn)事務(wù)消息 /451 第9章 分布式網(wǎng)關(guān)——基于Spring Cloud Gateway /456 9.1 認(rèn)識網(wǎng)關(guān) /456 9.1.1 什么是網(wǎng)關(guān) /456 9.1.2 為什么需要網(wǎng)關(guān) /457 9.1.3 認(rèn)識Spring Cloud Gateway /460 9.2 用Reactor Netty實現(xiàn) Spring Cloud Gateway的通信渠道 /463 9.2.1 什么是Reactor Netty /463 9.2.2 “用過濾器代理網(wǎng)關(guān)請求”的原理 /466 9.3 用“路由規(guī)則定位器”(RouteDefinitionLocator)加載網(wǎng)關(guān)的路由規(guī)則 /473 9.3.1 “基于注冊中心的路由規(guī)則定位器”的原理 /473 9.3.2 “基于內(nèi)存的路由規(guī)則定位器”的原理 /477 9.3.3 “基于Redis緩存的路由規(guī)則定位器”的原理 /479 9.3.4 “基于屬性文件的路由規(guī)則定位器”的原理 /480 9.3.5 【實例】用“基于注冊中心和配置中心的路由規(guī)則定位器”在網(wǎng)關(guān)統(tǒng)一暴露API /481 9.4 用“Redis + Lua”進行網(wǎng)關(guān)API的限流 /487 9.4.1 “網(wǎng)關(guān)用Redis + Lua實現(xiàn)分布式限流”的原理 /487 9.4.2 【實例】將Spring Cloud Alibaba應(yīng)用接入網(wǎng)關(guān),用“Redis +Lua”進行限流 /494 ★高級篇 第10章 分布式鏈路追蹤——基于Skywalking /500 10.1 認(rèn)識分布式鏈路追蹤 /500 10.1.1 什么是分布式鏈路追蹤 /500 10.1.2 認(rèn)識Skywalking /502 10.2 搭建Skywalking環(huán)境 /505 10.2.1 搭建單機環(huán)境 /505 10.2.2 搭建集群環(huán)境 /507 10.3 用Java Agent將Spring Cloud Alibaba應(yīng)用接入Skywalking 10.3.1 什么是Java Agent /511 10.3.2 “Skywalking使用Java Agent零侵入應(yīng)用”的原理 /513 10.3.3 【實例】將“基于Spring Cloud Alibaba的服務(wù)消費者和訂閱者”接入Skywalking /517 10.4 用ModuleProvider和ModuleDefine將Skywalking的功能進行模塊化設(shè)計 10.4.1 為什么需要模塊化設(shè)計 /520 10.4.2 Skywalking模塊化設(shè)計的原理 /522 10.4.3 Skywalking啟動的原理 /529 10.5 用HTTP、gRPC和Kafka實現(xiàn)“應(yīng)用與Skywalking之間的通信渠道” 10.5.1 “基于HTTP實現(xiàn)通信渠道”的原理 /532 10.5.2 “基于gRPC實現(xiàn)通信渠道”的原理 /535 10.5.3 “基于Kafka實現(xiàn)通信渠道”的原理 /541 10.5.4 【實例】搭建Kafka環(huán)境,并用異步通信渠道Kafka收集基于Spring Cloud Alibaba應(yīng)用的運行鏈路指標(biāo)數(shù)據(jù) /549 10.6 用“注冊中心”保證集群的高可用 /551 10.6.1 為什么需要注冊中心 /551 10.6.2 “用注冊中心保證集群高可用”的原理 /553 10.7 用“分布式配置中心”動態(tài)加載集群的配置信息 /558 10.7.1 為什么需要分布式配置中心 /558 10.7.2 “用配置中心動態(tài)加載集群配置信息”的原理 /559 10.7.3 【實例】用配置中心動態(tài)地修改告警規(guī)則 /565 10.8 用探針采集鏈路追蹤數(shù)據(jù) /569 10.8.1 什么是探針 /569 10.8.2 Dubbo探針的原理 /570 10.8.3 “Skywalking用探針來增強應(yīng)用代碼”的原理 /573 10.8.4 【實例】模擬Dubbo服務(wù)故障,用Dubbo探針采集鏈路追蹤數(shù)據(jù) 10.9 用Elasticsearch存儲鏈路追蹤數(shù)據(jù) /583 10.9.1 什么是Elasticsearch /583 10.9.2 存儲鏈路追蹤指標(biāo)數(shù)據(jù)的原理 /584 10.9.3 【實例】將Skywalking集群接入Elasticsearch,并采集Spring Cloud Alibaba應(yīng)用的鏈路追蹤數(shù)據(jù) /595 第11章 分布式Job——基于Elastic Job /598 11.1 認(rèn)識分布式Job /598 11.1.1 為什么需要分布式Job /598 11.1.2 認(rèn)識Elastic Job /602 11.2 將應(yīng)用接入Elastic Job Lite /604 11.2.1 將應(yīng)用接入Elastic Job Lite的3種模式 /605 11.2.2 搭建Elastic Job Lite的分布式環(huán)境 /607 11.2.3 【實例】用Spring Boot Starter將Spring Cloud Alibaba應(yīng)用接入Elastic Job Lite /608 11.3 “實現(xiàn)Elastic Job Lite的本地Job和分布式Job”的原理 /611 11.3.1 用Quartz框架實現(xiàn)本地Job /611 11.3.2 用ZooKeeper框架實現(xiàn)分布式Job /621 11.3.3 【實例】在Elastic Job控制臺中操控分布式Job /625 11.4 “用SPI將Job分片策略插件化”的原理 /627 11.4.1 用SPI工廠類JobShardingStrategyFactory加載分片策略 /628 11.4.2 用ShardingService類觸發(fā)Job去執(zhí)行分片策略 /631 11.4.3 【實例】將Spring Cloud Alibaba應(yīng)用接入帶有分片功能的分布式Job /633 11.5 “實現(xiàn)分布式Job的事件追蹤”的原理 /636 11.5.1 用基于Guava的事件機制實現(xiàn)分布式Job的事件追蹤 /636 11.5.2 用數(shù)據(jù)庫持久化分布式Job的運行狀態(tài)和日志 /643 11.5.3 【實例】將Spring Cloud Alibaba應(yīng)用接入Elastic Job,并開啟分布式Job的事件追蹤 /652 第12章 分庫分表和讀寫分離——基于ShardingSphere 12.1 認(rèn)識ShardingSphere /655 12.1.1 什么是分布式數(shù)據(jù)庫 /655 12.1.2 什么是ShardingSphere /658 12.2 將應(yīng)用接入ShardingSphere JDBC /662 12.2.1 用四種模式將應(yīng)用接入Shardingsphere JDBC /662 12.2.2 【實例】用Spring Boot將應(yīng)用接入Shardingsphere JDBC并完成分庫分表 /665 12.3 “用路由引擎實現(xiàn)分庫分表”的原理 /681 12.3.1 綁定分庫分表規(guī)則和數(shù)據(jù)庫數(shù)據(jù)源,并初始化路由引擎 /682 12.3.2 攔截SQL語句,并啟動路由引擎 /689 12.4 “讀寫分離”的原理 /703 12.4.1 讀取應(yīng)用配置文件中的數(shù)據(jù)庫據(jù)源及讀寫分離規(guī)則 /703 12.4.2 使用ReplicaQuerySQLRouter類的createRouteContext()方法創(chuàng)建讀寫分離的路由上下文對象RouteContext /704 12.4.3 使用ReplicaQueryRuleSpringbootConfiguration類加載應(yīng)用的]負(fù)載均衡器ReplicaLoadBalanceAlgorithm對象 /706 12.5 用Netty實現(xiàn)Shardingsphere Proxy的通信渠道 /708 12.5.1 “Shardingsphere Proxy通信渠道”的原理 /708 12.5.2 【實例】搭建通信渠道環(huán)境,將Spring Cloud Alibaba應(yīng)用接入Shardingsphere Proxy /711 12.6 “使用SQL解析引擎實現(xiàn)Shardingsphere Proxy分庫分表”的原理 12.6.1 為什么需要SQL解析引擎 /715 12.6.2 使用命令設(shè)計模式實現(xiàn)SQL語句的路由 /716 12.6.3 “使用MySQLComStmtPrepareExecutor類處理SQL請求”的原理 12.6.4 “使用MySQLComStmtExecuteExecutor類處理SQL請求”的原理 第13章 分布式緩存——基于Redis /741 13.1 認(rèn)識緩存 /741 13.1.1 什么是本地緩存 /741 13.1.2 什么是分布式緩存 /743 13.1.3 什么是Redis /745 13.1.4 Redis的整體架構(gòu) /746 13.2 搭建Redis集群環(huán)境 /747 13.2.1 搭建主從環(huán)境 /747 13.2.2 搭建Sentinel集群環(huán)境 /751 13.2.3 搭建Codis集群環(huán)境 /756 13.2.4 搭建Redis Cluster集群環(huán)境 /769 13.3 將Spring Cloud Alibaba應(yīng)用接入Redis /775 13.3.1 【實例】集成spring-boot-starter-data-redis,將Spring Cloud Alibaba應(yīng)用接入Redis主從環(huán)境 /775 13.3.2 【實例】集成redisson-spring-boot-starter,將Spring Cloud Alibaba 應(yīng)用接入Redis的Sentinel環(huán)境 /778 13.3.3 【實例】集成Jedis,將Spring Cloud Alibaba應(yīng)用接入Redis的Codis集群環(huán)境 /782 13.3.4 【實例】集成Lettuce,將Spring Cloud Alibaba應(yīng)用接入Redis Cluster集群環(huán)境 /785 13.4 “用分布式緩存Redis和Redisson框架實現(xiàn)分布式鎖”的原理 13.4.1 什么是分布式鎖 /789 13.4.2 初始化RedissonClient并連接Redis的服務(wù)器端 /791 13.4.3 “用Redisson框架的RedissonLock類實現(xiàn)分布式鎖”的原理 13.4.4 【實例】在Spring Cloud Alibaba應(yīng)用中,驗證分布式鎖的功能 第14章 服務(wù)注冊/訂閱路由、全鏈路藍綠發(fā)布和灰度發(fā)布——基于Discovery 14.1 認(rèn)識服務(wù)注冊/訂閱路由、藍綠發(fā)布和灰度發(fā)布 /815 14.1.1 什么是服務(wù)注冊路由、服務(wù)訂閱路由 /816 14.1.2 什么是藍綠發(fā)布 /816 14.1.3 什么是灰度發(fā)布 /817 14.1.4 認(rèn)識微服務(wù)治理框架Discovery /819 14.2 “用插件機制來集成主流的注冊中心和配置中心”的原理 /822 14.2.1 集成主流的注冊中心 /822 14.2.2 集成主流的配置中心 /827 14.3 “用Open API和配置中心動態(tài)變修改規(guī)則”的原理 /828 14.3.1 用Open API動態(tài)修改規(guī)則 /829 14.3.2 用配置中心動態(tài)修改規(guī)則 /834 14.3.3 【實例】在Spring Cloud Alibaba應(yīng)用中用Nacos配置中心變更規(guī)則,并驗證規(guī)則動態(tài)變更的效果 /839 14.4 “用服務(wù)注冊/訂閱實現(xiàn)服務(wù)的路由”的原理 /842 14.4.1 用“服務(wù)注冊的前置處理和注冊監(jiān)聽器”實現(xiàn)基于服務(wù)注冊的服務(wù)路由 /843 14.4.2 用“服務(wù)訂閱前置處理 + 注冊監(jiān)聽器”實現(xiàn)基于服務(wù)訂閱的服務(wù)路由 /849 14.4.3 【實例】在Spring Cloud Alibaba應(yīng)用中配置服務(wù)注冊的路由規(guī)則 14.4.4 【實例】在Spring Cloud Alibaba應(yīng)用中配置服務(wù)訂閱的路由規(guī)則 14.5 “用路由過濾器實現(xiàn)全鏈路的藍綠發(fā)布和灰度發(fā)布”的原理 /866 14.5.1 用路由過濾器適配 Spring Cloud Gateway網(wǎng)關(guān) /866 14.5.2 用路由過濾器適配 RESTful API /869 14.5.3 【實例】在Spring Cloud Alibaba應(yīng)用中配置全鏈路灰度發(fā)布的規(guī)則,并驗證全鏈路灰度發(fā)布的效果 /871 14.5.4 【實例】在Spring Cloud Alibaba應(yīng)用中配置全鏈路藍綠發(fā)布的規(guī)則,并驗證全鏈路藍綠發(fā)布的效果 /879 ★項目實戰(zhàn)篇 第15章 【項目】全鏈路日志平臺——基于ELK、FileBeat、Kafka、Spring Cloud Alibaba及Skywalking /886 15.1 全鏈路日志平臺整體架構(gòu) /886 15.2 搭建環(huán)境 /887 15.3 將Spring Cloud Alibaba應(yīng)用接入全鏈路日志平臺 /890 15.3.1 將微服務(wù)接入全鏈路日志平臺 /890 15.3.2 使用全鏈路日志平臺查詢業(yè)務(wù)日志 /891 第16章 【項目】在企業(yè)中落地中臺架構(gòu) /893 16.1 某跨境支付公司中臺架構(gòu) /893 16.1.1 跨境支付中臺架構(gòu) /893 16.1.2 跨境支付用戶中臺架構(gòu) /895 16.2 某娛樂直播公司中臺架構(gòu) /896 16.2.1 泛娛樂直播中臺架構(gòu) /896 16.2.2 直播用戶中臺架構(gòu) /899 16.3 用“服務(wù)雙寫和灰度發(fā)布”來實現(xiàn)中臺服務(wù)上線過程中的“業(yè)務(wù)方零停機時間” /902 16.3.1 服務(wù)雙寫架構(gòu) /902 16.3.2 服務(wù)灰度發(fā)布架構(gòu) /903 第17章 【項目】異構(gòu)數(shù)據(jù)遷移平臺——基于DataX /905 17.1 搭建環(huán)境 /905 17.1.1 軟件環(huán)境 /905 17.1.2 搭建MySQL的異構(gòu)數(shù)據(jù)遷移環(huán)境 /906 17.2 搭建控制臺 /909 17.2.1 構(gòu)建部署包 /909 17.2.2 用部署包搭建后臺管理系統(tǒng)datax-admin /910 17.2.3 用部署包搭建任務(wù)執(zhí)行器datax-executor /911 17.2.4 使用可視化控制臺執(zhí)行MySQL異構(gòu)數(shù)據(jù)遷移 /911 17.3 在Spring Cloud Alibaba應(yīng)用中用DataX完成異構(gòu)數(shù)據(jù)遷移 第18章 【項目】業(yè)務(wù)鏈路告警平臺——基于Spring Cloud libaba、Nacos和Skywalking 18.1 告警平臺的整體架構(gòu)設(shè)計 /922 18.2 告警服務(wù)詳細(xì)設(shè)計 /924 18.2.1 產(chǎn)品化部署設(shè)計 /925 18.2.2 Nacos服務(wù)健康告警設(shè)計 /926 18.2.3 Skywalking鏈路錯誤告警設(shè)計 /927 18.2.4 Skywalking的指標(biāo)告警設(shè)計 /928 18.2.5 RocketMQ消息堆積告警設(shè)計 /928 18.3 分析告警服務(wù)的部分源碼 /929 18.3.1 用分布式Job類NacosAlarmHealthJob實現(xiàn)Nacos服務(wù)健康告警 18.3.2 用分布式Job類SkywalkingErrorAlarmJob實現(xiàn)Skywalking鏈路錯誤告警 18.4 將電商微服務(wù)接入告警平臺,驗證告警平臺的實時告警功能 /932 18.4.1 啟動告警平臺的軟件環(huán)境 /932 18.4.2 在購買商品時,在下單過程中驗證實時告警功能 /933 18.4.3 在購買商品時,在支付過程中驗證實時告警功能 /936
你還可能感興趣
我要評論
|