预购商品
书目分类
特别推荐
前言 第1章 認識分散式系統1 1.1 分散式系統概述1 1.1.1 從單塊系統到分散式系統1 1.1.2 分散式系統的基本特性3 1.1.3 分散式系統和微服務架構4 1.2 分散式系統的核心設計要求6 1.2.1 性能6 1.2.2 可用性6 1.2.3 可擴展性6 1.2.4 服務治理7 1.3 分散式系統開發技術元件7 1.3.1 遠端程式呼叫組件8 1.3.2 微服務構建元件10 1.3.3 通用技術組件13 1.4 分散式系統的主流開發套件15 1.4.1 Spring Boot15 1.4.2 Spring Cloud18 1.4.3 Dubbo18 1.4.4 MyBatis19 1.5 分散式系統面試題解析19 1.6 本章小結20 第2章 剖析框架代碼結構的系統方法22 2.1 基於元件設計原則剖析代碼結構23 2.1.1 為什麼代碼結構要這麼設計23 2.1.2 元件設計原則與量化標準24 2.1.3 元件設計原則與代碼結構:Dubbo與MyBatis28 2.1.4 迴圈依賴及其消除方法31 2.2 基於架構演進過程剖析代碼結構39 2.2.1 如何從易到難對框架進行逐步拆解39 2.2.2 Dubbo的架構演進過程40 2.3 基於主流程剖析代碼結構46 2.3.1 如何抓住主流程並對框架進行分層剖析46 2.3.2 MyBatis中的主流程46 2.4 基於基礎架構組成剖析代碼結構54 2.4.1 如何從基礎架構擴展到具體實現框架54 2.4.2 RPC基礎架構54 2.4.3 從RPC基礎架構擴展到Dubbo框架61 2.5 基於可擴展性設計剖析代碼結構65 2.5.1 如何在框架中預留可擴展點65 2.5.2 常見的可擴展性設計方法66 2.5.3 MyBatis TypeHandler機制68 2.6 剖析框架代碼結構面試題解析72 2.7 本章小結73 第3章 網路通信74 3.1 網路通信與Dubbo框架74 3.1.1 網路通信基本概念74 3.1.2 Dubbo中的網路通信元件77 3.2 Dubbo伺服器端通信原理77 3.2.1 伺服器端Exchange77 3.2.2 伺服器端Transport82 3.2.3 伺服器端Serialize84 3.3 Dubbo用戶端通信原理87 3.4 網路通信面試題解析89 3.5 本章小結90 第4章 遠程調用91 4.1 服務發佈和引用92 4.1.1 如何發佈遠端服務92 4.1.2 如何引用遠端服務93 4.2 Dubbo中的遠端調用94 4.2.1 Dubbo服務發佈流程94 4.2.2 Dubbo服務引用流程101 4.3 遠程調用面試題解析109 4.4 本章小結110 第5章 負載均衡112 5.1 負載均衡基本原理112 5.1.1 負載均衡的類型113 5.1.2 負載均衡演算法和策略114 5.2 Dubbo中的負載均衡116 5.2.1 Dubbo負載均衡整體結構116 5.2.2 Dubbo負載均衡策略118 5.3 Spring Cloud中的負載均衡120 5.3.1 Netflix Ribbon核心機制120 5.3.2 Netflix Ribbon負載均衡策略122 5.3.3 Spring Cloud Netflix Ribbon實現原理124 5.4 負載均衡面試題解析127 5.5 本章小結128 第6章 服務容錯129 6.1 服務容錯設計思想129 6.1.1 服務消費者容錯129 6.1.2 服務容錯策略130 6.2 Dubbo中的集群容錯132 6.2.1 Dubbo中的集群133 6.2.2 Dubbo中的容錯機制134 6.3 Spring Cloud中的服務熔斷136 6.3.1 Spring Cloud Circuit Breaker137 6.3.2 Hystrix熔斷機制139 6.4 服務容錯面試題解析147 6.5 本章小結148 第7章 服務降級149 7.1 服務降級策略149 7.1.1 服務分級149 7.1.2 服務回退150 7.2 Dubbo中的服務降級151 7.2.1 Dubbo中的Mock機制151 7.2.2 MockInvoker和Mock-ClusterInvoker152 7.3 Spring Cloud中的服務降級154 7.3.1 Spring Cloud中的回退機制154 7.3.2 基於攔截器實現回退156 7.4 服務降級面試題解析158 7.5 本章小結159 第8章 註冊中心160 8.1 服務註冊和發現160 8.1.1 註冊中心模型160 8.1.2 註冊中心實現工具163 8.2 Dubbo中的註冊中心163 8.2.1 Dubbo註冊中心模型163 8.2.2 ZooKeeper基本原理與操作方式164 8.2.3 ZooKeeper註冊中心實現過程166 8.3 Spring Cloud中的註冊中心172 8.3.1 Eureka註冊中心模型172 8.3.2 Eureka伺服器端基本原理173 8.3.3 Eureka用戶端基本原理178 8.4 註冊中心面試題解析184 8.5 本章小結185 第9章 服務閘道186 9.1 服務閘道的核心概念187 9.1.1 服務閘道的作用187 9.1.2 服務閘道的結構和功能188 9.2 Spring Cloud Gateway工作原理188 9.2.1 回應式程式設計概述189 9.2.2 Spring Cloud Gateway架構192 9.2.3 路由和篩檢程式194 9.3 服務閘道面試題解析204 9.4 本章小結205 第10章 配置中心206 10.1 配置中心基本模型207 10.1.1 配置中心與微服務架構207 10.1.2 配置中心實現工具208 10.2 Spring Cloud Config工作機制209 10.2.1 Spring Cloud Config Server工作機制209 10.2.2 Spring Cloud Config Client 工作機制213 10.3 Spring Cloud Config配置資訊更新218 10.3.1 Spring Cloud Config用戶端更新策略218 10.3.2 配置資訊熱更新機制219 10.4 配置中心面試題解析223 10.5 本章小結225 第11章 消息通信226 11.1 事件驅動和消息通信226 11.1.1 事件驅動架構的需求226 11.1.2 消息通信機制和消息仲介軟體228 11.1.3 基於消息通信機制的系統集成方法229 11.2 從Spring Messaging到Spring Cloud Stream230 11.2.1 Spring Messaging和Spring Integration 231 11.2.2 Spring Cloud Stream中的Spring Integration233 11.2.3 Spring Cloud Stream基本架構234 11.3 Spring Cloud Stream整合消息仲介軟體235 11.3.1 Spring Cloud Stream發送和接收消息235 11.3.2 RabbitMQ發送和接收消息242 11.4 消息通信面試題解析245 11.5 本章小結246 第12章 動態代理247 12.1 代理模式和類型247 12.1.1 靜態代理機制248 12.1.2 動態代理機制249 12.2 Dubbo遠端存取中的代理機制252 12.2.1 ProxyFactory252 12.2.2 JdkProxyFactory253 12.3 MyBatis資料訪問中的代理機制254 12.3.1 Mapper和動態代理254 12.3.2 延遲載入和動態代理258 12.4 動態代理面試題解析260 12.5 本章小結261 第13章 應用緩存263 13.1 應用緩存的設計策略263 13.1.1 經典緩存分層架構263 13.1.2 應用緩存的分級模式264 13.2 MyBatis一級緩存264 13.2.1 Cache264 13.2.2 PerpetualCache265 13.2.3 一級緩存與BaseExecutor268 13.3 MyBatis二級緩存271 13.3.1 CacheBuilder271 13.3.2 二級緩存與CachingExecutor274 13.4 應用緩存面試題解析277 13.5 本章小結278 第14章 資源管理279 14.1 資源管理和資源池279 14.1.1 資源池模型279 14.1.2 資源池實現示例280 14.2 MyBatis中的資料庫連接池282 14.2.1 連接池的工作流程和 核心要素283 14.2.2 Connection物件獲取過程284 14.2.3 PooledDataSource285 14.2.4 UnpooledDataSource289 14.3 資源管理面試題解析290 14.4 本章小結291 第15章 框架組成292 15.1 Spring中的啟動擴展點292 15.1.1 InitializingBean和 DisposableBean292 15.1.2 BeanPostProcessor295 15.1.3 Aware296 15.1.4 ApplicationListener299 15.2 Spring自訂標籤體系305 15.2.1 標籤擴展時機305 15.2.2 標籤擴展的開發流程305 15.3 Spring Boot自動配置310 15.4 Dubbo的框架組成312 15.4.1 Dubbo啟動機制313 15.4.2 Dubbo自訂配置標籤319 15.5 MyBatis的框架組成320 15.5.1 MyBatis-Spring啟動過程320 15.5.2 MyBatis-Spring-Boot-Starter326 15.6 框架組成面試題解析329 15.7 本章小結331 第16章 架構模式332 16.1 架構模式與應用332 16.1.1 模式的概念和分類332 16.1.2 基於架構模式把握框架設計思想333 16.2 微核心模式及其應用334 16.2.1 微核心模式和外掛程式化系統334 16.2.2 微核心模式的基本實現:SPI機制336 16.2.3 微核心模式在Dubbo中的應用339 16.2.4 Dubbo中的擴展點344 16.3 管道-篩檢程式模式及其應用346 16.3.1 管道-篩檢程式模式簡介346 16.3.2 管道-篩檢程式模式在Dubbo中的應用351 16.3.3 管道-篩檢程式模式在MyBatis中的應用354 16.4 架構模式面試題解析360 16.5 本章小結362
鄭天民 資深架構師和技術專家,有近15年的軟體研發和架構經驗。現擔任某知名健康科技公司技術總監,先後就職於多家大型上市公司和互聯網獨角獸公司,擔任系統架構師、技術總監和CTO等職務。 對架構設計和技術管理有深入的理解,積累了豐富的經驗,研發和主持過10餘個面向研發人員的技術與管理類培訓課程。熱衷於總結和分享,著作有《系統架構設計》等,譯作有《Spring回應式程式設計》等。 阿里雲MVP、騰訊雲TVP、TGO鯤鵬會會員。
最近浏览商品
客服公告
热门活动
订阅电子报