注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計JAVA及其相關Java應用開發(fā)關鍵技術與面試技巧

Java應用開發(fā)關鍵技術與面試技巧

Java應用開發(fā)關鍵技術與面試技巧

定 價:¥149.00

作 者: 周冠亞
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787302676874 出版時間: 2025-01-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內容簡介

  《Java應用開發(fā)關鍵技術與面試技巧》全面介紹了現(xiàn)代Java應用開發(fā)核心技術和最佳實踐,旨在幫助讀者掌握企業(yè)級Java應用開發(fā)技術并能夠成功地應對名企的面試和挑戰(zhàn)?!禞ava應用開發(fā)關鍵技術與面試技巧》共19章,內容主要包括Spring框架、MyBatis與ORM、高并發(fā)處理、分布式協(xié)調服務、Dubbo框架、緩存技術、消息隊列、數(shù)據(jù)庫分片、分布式事務、NoSQL數(shù)據(jù)庫、微服務架構、服務治理、容錯機制、API網(wǎng)關。除每章章末提供的核心知識點和面試題外,《Java應用開發(fā)關鍵技術與面試技巧》還單獨就面試列出一章“面試籌劃”,從簡歷構造、面試攻略、面試心態(tài)、面試刷題、面試技巧、面試跟進以及面試總結,詳盡地指導讀者了解整個面試過程。《Java應用開發(fā)關鍵技術與面試技巧》不僅覆蓋Java應用開發(fā)的核心技術,還結合豐富的案例分析和面試指導,既適合想學習Java企業(yè)級開發(fā)的在校學生和程序員,也適合準備Java技術面試的求職者閱讀。

作者簡介

  周冠亞(筆名無雙)上海交大軟件工程碩士,先后就職于大潤發(fā)、美團點評和中國電信等,現(xiàn)就職于移動互聯(lián)網(wǎng)行業(yè)一家知名智能制造公司,對高并發(fā)、高可用、高性能、海量數(shù)據(jù)的分布式復雜系統(tǒng)的架構設計有豐富經驗,先后負責過電商、支付、營銷、供應、制造等業(yè)務領域的研發(fā)工作,現(xiàn)階段主要從事企業(yè)架構相關工作。在企業(yè)內經常參與招聘面試,最高記錄一年面試超400人。出版著作:《Spring 5企業(yè)級開發(fā)實戰(zhàn)》(與人合著)。作者個人技術星球:【IT職場說】

圖書目錄

第1篇  應用框架
第 1 章  Spring 2
1.1  Spring概述 2
1.1.1  Spring是什么 2
1.1.2  Spring的優(yōu)點是什么 3
1.2  IoC 3
1.2.1  軟件設計的七大原則分別是什么 4
1.2.2  依賴倒置原則與案例分析 5
1.2.3  控制反轉與案例分析 6
1.2.4  Spring IoC的配置方式有哪些 11
1.2.5  BeanFactory是什么 18
1.2.6  FactoryBean及其應用案例 23
1.2.7  BeanDefinition是什么 34
1.2.8  ApplicationContext是什么 54
1.2.9  Spring IoC的啟動過程是什么 60
1.3  AOP 82
1.3.1  AOP是什么 82
1.3.2  企業(yè)開發(fā)中常用的AOP技術 83
1.3.3  JDK動態(tài)代理使用案例 84
1.3.4  JDK動態(tài)代理的工作原理 87
1.3.5  CGLib動態(tài)代理使用案例 91
1.3.6  CGLib動態(tài)代理的工作原理 93
1.3.7  Spring AOP使用案例 104
1.3.8  Spring AOP代理方式的選擇 107
1.4  Spring事務管理 108
1.4.1  事務的ACID特性 108
1.4.2  事務并發(fā)執(zhí)行引發(fā)的問題 109
1.4.3  事務隔離級別及案例分析 109
1.4.4  Spring事務傳播行為 115
1.4.5  Spring事務使用案例 116
1.4.6  Spring Boot自動事務配置 118
1.4.7  Spring事務管理原理 128
1.5  Spring Web MVC 146
1.5.1  Spring Boot搭建MVC案例 146
1.5.2  Spring MVC的工作原理及關鍵代碼分析 148
1.6  Spring面試押題 165
1.6.1  Spring IoC的設計思想是什么 166
1.6.2  BeanFactory和FactoryBean有什么區(qū)別 166
1.6.3  BeanFactory和ApplicationContext有什么區(qū)別 166
1.6.4  Spring Bean的生命周期包含哪些過程 167
1.6.5  Spring Bean的作用域有哪幾種 167
1.6.6  Spring如何解決循環(huán)依賴 168
1.6.7  Spring的自動裝配是如何實現(xiàn)的 168
1.6.8  Spring框架中使用到哪些常用的設計模式 168
1.6.9  Spring框架中有哪些類型的事件 169
1.6.10  什么是AOP 169
1.6.11  引入AOP能解決什么問題 169
1.6.12  項目中使用AOP的場景 170
1.6.13  AOP中有哪些比較重要的概念 170
1.6.14  什么是JDK動態(tài)代理 170
1.6.15  什么是CGLib動態(tài)代理 171
1.6.16  JDK動態(tài)代理與CGLib動態(tài)代理有什么區(qū)別 171
1.6.17  Spring AOP中有哪些Advice類型 171
1.6.18  動態(tài)代理與靜態(tài)代理的區(qū)別是什么 172
1.6.19  什么是事務,為什么需要事務 172
1.6.20  事務有哪些特性 172
1.6.21  MySQL支持哪些事務隔離級別 173
1.6.22  Spring中有哪些事務傳播行為 173
1.6.23  Spring事務在什么場景下會失效 174
1.6.24  Spring事務管理遇到哪些異常不會回滾 174
1.6.25  什么是Spring MVC 174
1.6.26  Spring MVC的主要組件有哪些 174
1.6.27  DispatcherServlet是什么,它有什么作用 175
1.6.28  Spring MVC中的控制器是不是線程安全的 175
1.6.29  Spring MVC的工作流程 175
1.6.30  Spring MVC與Struts2有哪些異同點 176
第 2 章  MyBatis 177
2.1  MyBatis概述 177
2.2  Spring Boot集成MyBatis案例 178
2.3  使用MyBatis Generator案例分析 181
2.4  MyBatis緩存分為哪幾種 184
2.5  MyBatis一級緩存有哪些特性 185
2.5.1  一級緩存默認是開啟的 185
2.5.2  一級緩存可以優(yōu)化查詢效率 185
2.5.3  一級緩存會因修改而失效 186
2.5.4  一級緩存僅在會話內共享 188
2.6  MyBatis一級緩存的原理是什么 189
2.6.1  SqlSession分析 190
2.6.2  SqlSessionFactory分析 192
2.6.3  Executor分析 192
2.6.4  Cache分析 193
2.6.5  一級緩存執(zhí)行原理分析 194
2.7  MyBatis二級緩存有哪些特性 200
2.7.1  二級緩存非默認開啟 200
2.7.2  在事務提交前二級緩存不生效 201
2.7.3  在事務提交后二級緩存會生效 202
2.7.4  當發(fā)生更新時二級緩存會被刷新 204
2.8  MyBatis二級緩存的原理是什么 205
2.9  如何編寫MyBatis插件 211
2.9.1  實現(xiàn)Interceptor接口 211
2.9.2  MyBatis插件植入 212
2.9.3  MyBatis插件執(zhí)行邏輯 214
2.10  簡述MyBatis執(zhí)行SQL的過程 215
2.10.1  MyBatis創(chuàng)建代理對象分析 216
2.10.2  MyBatis代理對象邏輯分析 218
2.10.3  SQL語句執(zhí)行過程分析 223
2.11  MyBatis面試押題 227
2.11.1  什么是MyBatis 227
2.11.2  MyBatis有哪些優(yōu)缺點 227
2.11.3  MyBatis框架的適用場景有哪些 227
2.11.4  MyBatis與Hibernate有哪些異同點 228
2.11.5  MyBatis中的#{}和${}的區(qū)別是什么 228
2.11.6  Mapper接口的工作原理是什么 229
2.11.7  MyBatis分頁插件的原理是什么 230
2.11.8  簡述MyBatis緩存的工作原理 231
2.11.9  為什么MyBatis是半自動ORM框架 231
2.11.10  如何提升基于MyBatis開發(fā)的應用程序的性能 231
2.11.11  MyBatis如何實現(xiàn)數(shù)據(jù)庫的讀寫分離 232
第2篇  分布式高并發(fā)
第 3 章  高并發(fā)分流 234
3.1  分布式架構概念解釋 234
3.2  企業(yè)系統(tǒng)架構的演進歷程 235
3.2.1  單機架構 235
3.2.2  第一次演進:Web服務器與數(shù)據(jù)庫獨立部署 236
3.2.3  第二次演進:引入本地緩存和分布式緩存 237
3.2.4  第三次演進:引入反向代理 237
3.2.5  第四次演進:引入數(shù)據(jù)庫讀寫分離 238
3.2.6  第五次演進:引入按業(yè)務拆分數(shù)據(jù)庫 238
3.2.7  第六次演進:引入分庫分表 240
3.2.8  第七次演進:引入使用LVS或F5 240
3.2.9  第八次演進:通過DNS實現(xiàn)機房間的負載均衡 241
3.2.10  第九次演進:引入NoSQL/NewSQL等技術 242
3.2.11  第十次演進:應用拆分 243
3.2.12  第十一次演進:引入ESB架構 244
3.2.13  第十二次演進:微服務拆分 245
3.2.14  第十三次演進:引入容器化架構 246
3.2.15  第十四次演進:引入云平臺架構 247
3.3  Nginx反向代理與負載均衡 248
3.3.1  正向代理 249
3.3.2  反向代理 249
3.4  Nginx配置詳解 251
3.5  OpenResty 255
3.5.1  OpenResty的安裝 255
3.5.2  OpenResty限流案例 256
3.6  高并發(fā)分流面試押題 258
3.6.1  什么是分布式架構 258
3.6.2  什么是面向服務的架構 258
3.6.3  什么是微服務架構 258
3.6.4  SOA架構和微服務架構的區(qū)別和聯(lián)系 259
3.6.5  什么是容器化架構 259
3.6.6  正向代理與反向代理的區(qū)別是什么 260
3.6.7  微服務拆分的依據(jù) 260
3.6.8  OpenResty和Nginx的區(qū)別與聯(lián)系 261
3.6.9  如何使用Nginx實現(xiàn)灰度發(fā)布 261
第 4 章  分布式協(xié)調服務 263
4.1  ZooKeeper的基礎知識 263
4.1.1  什么是ZooKeeper 263
4.1.2  什么是CAP理論 263
4.1.3  ZooKeeper對CAP的支持 265
4.1.4  ZooKeeper與其他注冊中心對比 265
4.2  ZooKeeper有哪些節(jié)點類型 265
4.3  ZooKeeper節(jié)點有哪幾種角色 266
4.4  什么是ZooKeeper的Watch機制 267
4.5  什么是ZooKeeper ACL權限控制 268
4.6  Paxos算法的原理是什么 269
4.6.1  分布式系統(tǒng)面臨的挑戰(zhàn) 269
4.6.2  分布式系統(tǒng)難題的轉換 270
4.6.3  Paxos算法的執(zhí)行過程 271
4.6.4  Paxos算法示例 273
4.7  基于Paxos的優(yōu)化算法有哪些 275
4.7.1  Multi Paxos算法 275
4.7.2  Fast Paxos算法 275
4.8  ZAB協(xié)議的原理是什么 276
4.8.1  原子廣播 276
4.8.2  故障恢復 278
4.8.3  ZXID生成規(guī)則 279
4.9  ZooKeeper代碼分析 279
4.9.1  ZooKeeper單機模式代碼分析 281
4.9.2  ZooKeeper集群模式代碼分析 284
4.9.3  ZooKeeper Leader選舉代碼分析 288
4.10  ZooKeeper面試押題 297
4.10.1  什么是ZooKeeper 297
4.10.2  ZooKeeper的節(jié)點類型有哪些 298
4.10.3  ZooKeeper保障的是CP還是AP機制 298
4.10.4  ZooKeeper是如何實現(xiàn)通知機制的 298
4.10.5  ZooKeeper的節(jié)點有哪幾種角色 299
4.10.6  簡述Paxos算法的原理 299
4.10.7  簡述ZAB協(xié)議的原理 299
4.10.8  如何利用ZooKeeper實現(xiàn)分布式鎖 300
4.10.9  ZooKeeper在哪些中間件中被使用 300
4.10.10  ZooKeeper腦裂問題及其處理辦法 301
第 5 章  Dubbo 302
5.1  Dubbo架構解析 302
5.1.1  Dubbo組件架構 302
5.1.2  Dubbo分層架構 303
5.2  Dubbo如何實現(xiàn)集群容錯 304
5.2.1  Failover Cluster 304
5.2.2  Failfast Cluster 304
5.2.3  Failsafe Cluster 304
5.2.4  Failback Cluster 304
5.2.5  Forking Cluster 304
5.2.6  Broadcast Cluster 305
5.2.7  Available Cluster 305
5.2.8  Mergeable Cluster 305
5.2.9  ZoneAware Cluster 305
5.2.10  Dubbo集群容錯代碼分析 305
5.3  Dubbo如何實現(xiàn)負載均衡 308
5.3.1  加權隨機策略 308
5.3.2  加權輪詢策略 308
5.3.3  加權最少活躍策略 309
5.3.4  加權最短響應策略 309
5.3.5  一致性哈希策略 309
5.4  Dubbo的線程模型是什么 312
5.4.1  IO線程 313
5.4.2  業(yè)務線程 314
5.5  Dubbo跨多注冊中心的能力 314
5.6  Dubbo服務分組 319
5.7  Dubbo SPI機制的原理是什么 320
5.7.1  SPI和API的區(qū)別和聯(lián)系 320
5.7.2  JDK SPI機制的實現(xiàn) 320
5.7.3  JDK SPI機制原理分析 322
5.7.4  Dubbo SPI機制的使用方式 327
5.7.5  Dubbo SPI機制原理分析 331
5.8  Dubbo面試押題 336
5.8.1  Dubbo的核心功能有哪些 336
5.8.2  Dubbo的核心組件有哪些 337
5.8.3  簡述Dubbo服務注冊與發(fā)現(xiàn)的流程 337
5.8.4  簡述主流RPC框架的異同點 338
5.8.5  Dubbo支持哪些負載均衡策略 338
5.8.6  Dubbo負載均衡在客戶端還是服務端實現(xiàn) 338
5.8.7  Dubbo支持的通信協(xié)議 338
5.8.8  簡述Dubbo SPI與Java SPI的異同點 339
5.8.9  Dubbo如何實現(xiàn)服務提供方失效移除 339
5.8.10  如何合理地設置Dubbo超時時間 340
第 6 章  Redis 341
6.1  Redis常用的數(shù)據(jù)類型 341
6.1.1  String 341
6.1.2  List 342
6.1.3  Hash 342
6.1.4  Set 343
6.1.5  Zset 343
6.2  Redis支持哪些數(shù)據(jù)結構 343
6.2.1  簡單動態(tài)字符串 344
6.2.2  鏈表 344
6.2.3  跳躍表 345
6.2.4  壓縮列表 345
6.2.5  哈希表 346
6.2.6  整數(shù)集合 348
6.3  Redis如何實現(xiàn)持久化 349
6.3.1  RDB 349
6.3.2  AOF 351
6.4  Redis主從部署架構的原理是什么 352
6.5  Redis哨兵部署架構 353
6.5.1  Redis哨兵架構的工作流程 353
6.5.2  主觀下線 354
6.5.3  客觀下線 354
6.5.4  Redis哨兵仲裁 355
6.5.5  哨兵領導者選舉規(guī)約 355
6.5.6  哨兵領導者選舉過程 356
6.5.7  Redis哨兵架構故障轉移 356
6.6  Redis集群部署架構 357
6.6.1  Redis集群架構的工作原理 357
6.6.2  Redis集群架構數(shù)據(jù)分片 358
6.6.3  Redis集群架構搭建 358
6.6.4  Redis集群架構擴容 362
6.6.5  Redis集群架構收縮 368
6.6.6  Redis集群架構選舉 369
6.7  緩存一致性解決方案有哪些 369
6.7.1  方案一:先更新數(shù)據(jù)庫后更新緩存 369
6.7.2  方案二:先更新緩存后更新數(shù)據(jù)庫 370
6.7.3  方案三:先刪除緩存后更新數(shù)據(jù)庫 370
6.7.4  方案四:先更新數(shù)據(jù)庫后刪除緩存 371
6.7.5  方案五:緩存延時雙刪解決方案 372
6.7.6  方案六:監(jiān)聽數(shù)據(jù)庫解決方案 374
6.8  緩存預熱方案有哪些 374
6.9  緩存穿透及解決方案 375
6.10  緩存擊穿及解決方案 377
6.11  緩存雪崩及解決方案 377
6.12  布隆過濾器及適用場景 378
6.13  熱點緩存識別及解決方案 380
6.13.1  熱點緩存識別 380
6.13.2  熱點緩存解決方案 380
6.14  Redis面試押題 381
6.14.1  Redis是什么 381
6.14.2  簡述企業(yè)開發(fā)中使用到Redis緩存的場景 381
6.14.3  Redis與Guava Cache有哪些異同點 382
6.14.4  Redis與Memcached相比有哪些異同點 383
6.14.5  Redis為什么能實現(xiàn)高性能 384
6.14.6  Redis支持哪些數(shù)據(jù)類型 384
6.14.7  Redis內部的數(shù)據(jù)結構有哪些 384
6.14.8  如何使用Redis實現(xiàn)計數(shù)器 384
6.14.9  如何使用Redis實現(xiàn)消息隊列的發(fā)布訂閱 384
6.14.10  如何使用Redis實現(xiàn)分布式鎖 385
6.14.11  Redis支持的持久化機制有哪些 385
6.14.12  Redis過期鍵的刪除策略有哪些 386
6.14.13  Redis的內存淘汰策略有哪些 386
6.14.14  Redis的線程模型是什么 386
6.14.15  Redis事務有哪些優(yōu)缺點 387
6.14.16  Redis的部署架構有哪些 387
6.14.17  什么是緩存穿透 387
6.14.18  什么是緩存擊穿 388
6.14.19  什么是緩存雪崩 388
6.14.20  Jedis與Redisson有哪些異同點 388
第 7 章  RocketMQ 389
7.1  核心概念 389
7.1.1  Producer 389
7.1.2  Consumer 390
7.1.3  Broker 390
7.1.4  Topic 390
7.1.5  Message Queue 391
7.1.6  Tag 391
7.1.7  NameServer 391
7.1.8  集群消費 391
7.1.9  廣播消費 391
7.1.10  分區(qū)順序消息 391
7.1.11  全局順序消息 391
7.1.12  RocketMQ消息模型 392
7.2  RocketMQ如何實現(xiàn)事務消息 393
7.3  RocketMQ如何實現(xiàn)順序消息 396
7.4  RocketMQ如何實現(xiàn)延遲消息 400
7.5  RocketMQ如何實現(xiàn)消息重試 404
7.5.1  生產者消息重試 404
7.5.2  消費者消息重試 404
7.5.3  消息冪等 405
7.6  RocketMQ如何實現(xiàn)死信消息 405
7.7  RocketMQ如何實現(xiàn)消息過濾 406
7.7.1  基于tag的消息過濾 406
7.7.2  基于SQL表達式的消息過濾 408
7.7.3  基于消費者端的消息過濾 410
7.8  RocketMQ如何實現(xiàn)消息負載均衡 410
7.8.1  生產者端負載均衡 410
7.8.2  消費者端負載均衡 411
7.9  如何解決消息積壓問題 411
7.9.1  消息積壓的場景 411
7.9.2  消息積壓的解決方案 412
7.10  RocketMQ面試押題 412
7.10.1  企業(yè)開發(fā)中使用MQ的場景有哪些 412
7.10.2  簡述RocketMQ的架構 413
7.10.3  RocketMQ如何實現(xiàn)消息過濾 413
7.10.4  如何保障RocketMQ的消息不重不丟 413
7.10.5  RocketMQ如何實現(xiàn)事務消息 413
7.10.6  什么是RocketMQ的半消息 413
7.10.7  RocketMQ的刷盤機制是什么 414
7.10.8  RocketMQ如何實現(xiàn)負載均衡 414
7.10.9  什么是RocketMQ的死信隊列 414
7.10.10  什么是消息冪等 414
7.10.11  什么是RocketMQ的推模式和拉模式 415
7.10.12  RocketMQ如何實現(xiàn)順序消息 415
7.10.13  RocketMQ如何實現(xiàn)延遲消息 415
7.10.14  簡述RocketMQ、RabbitMQ和Kafka之間的異同點 415
第 8 章  Kafka 417
8.1  Kafka的核心概念 417
8.1.1  Kafka的基本概念 417
8.1.2  Kafka的核心API 418
8.2  Kafka消息處理原理 419
8.2.1  Kafka架構原理 419
8.2.2  Kafka的存儲機制 420
8.2.3  Kafka副本機制 423
8.2.4  Kafka ISR機制 423
8.2.5  Kafka HW&LEO 424
8.3  Kafka有哪些消息語義 425
8.3.1  at most once 425
8.3.2  at least once 425
8.3.3  exactly once 426
8.4  Kafka消息丟失的場景有哪些 426
8.4.1  生產者消息丟失 426
8.4.2  Broker消息丟失 426
8.4.3  消費者消息丟失 427
8.5  Kafka控制器的選舉流程是什么 427
8.6  Kafka分區(qū)副本的選舉策略有哪些 430
8.7  Kafka的協(xié)調器有哪些 430
8.7.1  消費者協(xié)調器 431
8.7.2  組協(xié)調器 431
8.8  Kafka的分區(qū)重平衡機制有哪些 433
8.8.1  RangeAssignor 433
8.8.2  RoundRobinAssignor 434
8.8.3  StickyAssignor 434
8.9  Kafka消費者的提交方式有哪些 434
8.10  Kafka面試押題 435
8.10.1  Kafka是什么 435
8.10.2  Kafka Replicas是如何管理的 435
8.10.3  Kafka中如何確定當前應該讀取什么消息 436
8.10.4  Kafka生產者發(fā)送消息有哪些模式 437
8.10.5  Kafka如何實現(xiàn)負載均衡 437
8.10.6  Kafka的Topic分區(qū)數(shù)越多越好嗎 438
8.10.7  如何增強Kafka消費者的消費能力 439
8.10.8  Kafka控制器是什么 439
8.10.9  Kafka為什么高性能 440
8.10.10  Kafka如何使用零拷貝 441
第 9 章  ShardingSphere 442
9.1  ShardingSphere的組成 442
9.1.1  ShardingSphere-JDBC 442
9.1.2  ShardingSphere-Proxy 443
9.1.3  ShardingSphere-Sidecar 443
9.2  核心概念 444
9.2.1  分庫 444
9.2.2  分表 445
9.2.3  垂直分片 445
9.2.4  水平分片 445
9.2.5  表 446
9.2.6  數(shù)據(jù)節(jié)點 447
9.2.7  分片算法 447
9.3  ShardingSphere如何實現(xiàn)分布式主鍵 448
9.4  ShardingSphere支持哪些類型的事務 449
9.4.1  LOCAL事務 449
9.4.2  XA事務 450
9.4.3  BASE事務 451
9.5  ShardingSphere如何實現(xiàn)讀寫分離 451
9.5.1  主庫和從庫 452
9.5.2  主從同步 452
9.5.3  ShardingSphere讀寫分離支持 452
9.6  ShardingSphere支持哪些數(shù)據(jù)分片算法 452
9.7  ShardingSphere-JDBC的工作原理是什么 453
9.7.1  SQL解析 453
9.7.2  SQL路由 454
9.7.3  SQL改寫 454
9.7.4  SQL執(zhí)行 454
9.7.5  結果歸并 454
9.8  ShardingSphere面試押題 455
9.8.1  ShardingSphere是什么 455
9.8.2  ShardingSphere支持哪些數(shù)據(jù)庫 455
9.8.3  企業(yè)開發(fā)中哪些場景會用到ShardingSphere 456
9.8.4  ShardingSphere的核心功能有哪些 456
9.8.5  ShardingSphere支持的數(shù)據(jù)分片技術有哪些 457
9.8.6  數(shù)據(jù)分片技術有哪些優(yōu)缺點 457
9.8.7  ShardingSphere與Mycat有哪些異同點 458
9.8.8  數(shù)據(jù)分片技術和分布式數(shù)據(jù)庫之間如何權衡 459
9.8.9  如何優(yōu)化一張大數(shù)據(jù)量表的查詢速度 459
第 10 章  分布式事務 461
10.1  什么是強一致性事務 461
10.2  分布式架構理論基礎 462
10.2.1  什么是CAP理論 462
10.2.2  什么是BASE理論 463
10.2.3  什么是2PC 463
10.2.4  什么是3PC 464
10.3  Atomikos分布式事務 465
10.3.1  TransactionsEssentials 466
10.3.2  ExtremeTransactions 467
10.4  TCC分布式事務 468
10.4.1  2PC和3PC的缺點 468
10.4.2  TCC的原理 468
10.4.3  TCC的改進 469
10.5  Saga分布式事務 469
10.5.1  Saga編排模式 470
10.5.2  Saga控制模式 471
10.6  Seata分布式事務 473
10.6.1  AT一階段 474
10.6.2  AT二階段 475
10.6.3  AT寫隔離 475
10.6.4  AT讀隔離 477
10.7  基于MQ的分布式事務 478
10.7.1  可靠的消息生產和消費 478
10.7.2  非可靠的消息生產和消費 480
10.8  分布式事務面試押題 481
10.8.1  什么是分布式事務 481
10.8.2  企業(yè)開發(fā)中產生分布式事務的場景有哪些 481
10.8.3  強一致性、弱一致性和最終一致性的異同點 482
10.8.4  什么是CAP理論 482
10.8.5  什么是BASE理論 482
10.8.6  分布式事務常見的解決方案有哪些 483
10.8.7  簡述工作中遇到的分布式事務場景及挑戰(zhàn) 483
10.8.8  簡述常見的中間件及其面臨的分布式事務問題 484
第 11 章  MongoDB 485
11.1  MongoDB支持哪些數(shù)據(jù)類型 485
11.2  MongoDB的核心概念 486
11.2.1  數(shù)據(jù)庫 486
11.2.2  集合 486
11.2.3  文檔 487
11.2.4  數(shù)據(jù)字段/域 487
11.2.5  索引 487
11.2.6  主鍵 488
11.3  MongoDB支持的索引類型 488
11.3.1  單鍵索引 488
11.3.2  復合索引 489
11.3.3  多鍵索引 489
11.3.4  地理空間索引 489
11.3.5  全文索引 489
11.3.6  哈希索引 489
11.4  MongoDB的執(zhí)行計劃 490
11.5  MongoDB的索引原理是什么 494
11.6  MongoDB集群搭建 495
11.6.1  主從復制架構 495
11.6.2  副本集架構 496
11.6.3  分片集群架構 497
11.7  MongoDB面試押題 498
11.7.1  什么是MongoDB 498
11.7.2  簡述MongoDB與傳統(tǒng)關系數(shù)據(jù)庫的異同點 499
11.7.3  簡述MongoDB與MySQL數(shù)據(jù)庫中的概念對比 500
11.7.4  簡述MongoDB與CouchBase的異同點 500
11.7.5  MongoDB中的分析器有什么用途 501
11.7.6  MongoDB的主節(jié)點和從節(jié)點如何實現(xiàn)數(shù)據(jù)同步 501
11.7.7  MongoDB的ObjectId生成規(guī)則是什么 502
11.7.8  企業(yè)開發(fā)中使用MongoDB的場景有哪些 502
11.7.9  在MongoDB中如何處理事務 502
11.7.10  MongoDB的寫關注是什么 503
第 12 章  Elasticsearch 504
12.1  Elasticsearch的特性有哪些 504
12.2  核心概念 504
12.2.1  索引 504
12.2.2  索引別名 505
12.2.3  類型 506
12.2.4  文檔 506
12.2.5  分詞 506
12.2.6  分詞器 507
12.2.7  keyword 514
12.2.8  text 514
12.3  什么是倒排索引 514
12.3.1  正排索引 515
12.3.2  倒排索引 515
12.3.3  單詞索引 516
12.3.4  FST 517
12.4  Elasticsearch如何實現(xiàn)集群發(fā)現(xiàn) 519
12.5  分片和副本 520
12.5.1  分片 520
12.5.2  副本 520
12.5.3  索引寫入流程 520
12.6  Elasticsearch的存儲原理是什么 521
12.6.1  Segment 521
12.6.2  文檔寫入 522
12.6.3  Refresh 523
12.6.4  Translog 523
12.6.5  Segment合并 525
12.7  Elasticsearch如何實現(xiàn)一致性 526
12.7.1  寫一致性 526
12.7.2  讀一致性 526
12.8  Elasticsearch面試押題 526
12.8.1  什么是Elasticsearch 526
12.8.2  什么是倒排索引 527
12.8.3  Elasticsearch與Solr有哪些異同點 527
12.8.4  Elasticsearch支持的分詞器有哪些 528
12.8.5  Elasticsearch中的keyword和text有什么區(qū)別 529
12.8.6  Elasticsearch中的query和filter有什么區(qū)別 529
12.8.7  簡述Elasticsearch的數(shù)據(jù)寫入流程 530
12.8.8  Elasticsearch的數(shù)據(jù)是如何存儲的 531
12.8.9  Elasticsearch如何保證讀寫一致性 531
12.8.10  簡述Elasticsearch的分布式原理 532
12.8.11  如何使用Elasticsearch解決深分頁問題 533
12.8.12  什么是Elasticsearch Bulk API 534
第3篇  微服務架構
第 13 章  微服務架構演進 536
13.1  單體架構 536
13.2  垂直架構 537
13.3  面向服務的架構 537
13.4  微服務架構 539
13.5  微服務架構演進面試押題 540
13.5.1  什么是微服務架構 540
13.5.2  微服務架構常用的RPC框架有哪些 540
13.5.3  微服務架構常用的注冊中心框架有哪些 541
13.5.4  微服務架構常用的負載均衡框架有哪些 542
13.5.5  微服務架構常用的網(wǎng)關框架有哪些 543
13.5.6  微服務架構常用的流量管控框架有哪些 543
13.5.7  微服務架構常用的配置中心框架有哪些 544
13.5.8  簡述企業(yè)開發(fā)中的微服務架構 544
第 14 章  Eureka 546
14.1  Eureka的核心概念 546
14.1.1  服務提供方 546
14.1.2  服務消費方 546
14.1.3  Eureka Server 546
14.1.4  Eureka Client 546
14.2  Eureka的工作流程是什么 547
14.3  Eureka的集群原理是什么 548
14.4  Eureka面試押題 548
14.4.1  什么是Eureka 548
14.4.2  Eureka中的服務消費方如何感知服務提供方 549
14.4.3  Eureka中的服務消費方如何選擇服務提供方 549
14.4.4  Eureka中的服務消費方如何感知服務提供方下線 550
14.4.5  簡述Eureka、Nacos和ZooKeeper的異同點 550
14.4.6  Eureka保證了CAP中的哪幾點 551
第 15 章  Ribbon 552
15.1  Ribbon的工作原理是什么 552
15.2  Ribbon支持哪些負載均衡策略 553
15.2.1  RoundRobinRule 553
15.2.2  WeightedResponseTimeRule 554
15.2.3  RandomRule 555
15.2.4  BestAvailableRule 556
15.2.5  RetryRule 557
15.2.6  AvailabilityFilteringRule 558
15.2.7  ZoneAvoidanceRule 559
15.3  Ribbon面試押題 560
15.3.1  什么是Ribbon 560
15.3.2  Ribbon與Nginx有哪些異同點 560
15.3.3  Ribbon支持哪些負載均衡策略 562
15.3.4  如何實現(xiàn)自定義的Ribbon負載均衡策略 562
第 16 章  OpenFeign 563
16.1  OpenFeign與Feign有哪些異同點 563
16.2  OpenFeign的架構原理 564
16.3  OpenFeign的實現(xiàn)原理是什么 564
16.4  OpenFeign面試押題 567
16.4.1  什么是OpenFeign 567
16.4.2  OpenFeign與Feign有哪些異同點 568
16.4.3  OpenFeign的工作原理是什么 568
16.4.4  OpenFeign與Dubbo有哪些異同點 568
16.4.5  OpenFeign與RestTemplate有什么區(qū)別 569
第 17 章  Hystrix 571
17.1  Hystrix的核心概念 571
17.1.1  限流 571
17.1.2  隔離 571
17.1.3  降級 572
17.1.4  熔斷 572
17.1.5  緩存 572
17.1.6  合并 573
17.2  Hystrix的工作流程是什么 573
17.3  Hystrix面試押題 574
17.3.1  什么是Hystrix 574
17.3.2  Hystrix的工作流程是什么 574
17.3.3  Hystrix如何實現(xiàn)請求緩存 575
17.3.4  Hystrix如何實現(xiàn)限流 575
17.3.5  Hystrix如何實現(xiàn)熔斷 575
17.3.6  什么場景會觸發(fā)Hystrix降級 576
17.3.7  簡述Hystrix、Sentinel和Resilience4j之間的異同點 576
第 18 章  API網(wǎng)關 578
18.1  API網(wǎng)關概述 578
18.2  多種API網(wǎng)關對比 579
18.2.1  Nginx 579
18.2.2  Zuul 579
18.2.3  Kong 580
18.2.4  Gateway 581
18.3  API網(wǎng)關面試押題 583
18.3.1  什么是API網(wǎng)關 583
18.3.2  對比常見的API網(wǎng)關 583
18.3.3  如何在網(wǎng)關實現(xiàn)用戶統(tǒng)一鑒權 583
18.3.4  如何在網(wǎng)關實現(xiàn)灰度發(fā)布 584
第4篇  面試技巧
第 19 章  面試籌劃 586
19.1  簡歷構造 586
19.1.1  個人信息 586
19.1.2  個人優(yōu)勢 588
19.1.3  期望職位 588
19.1.4  工作經歷 589
19.1.5  項目經歷 589
19.1.6  教育經歷 590
19.2  面試攻略 591
19.2.1  海投簡歷 591
19.2.2  小試牛刀 591
19.2.3  厚積薄發(fā) 592
19.3  面試心態(tài) 593
19.3.1  候選人分析 593
19.3.2  面試官分析 595
19.4  面試刷題 597
19.4.1  機試刷題 597
19.4.2  現(xiàn)場面試刷題 597
19.5  面試技巧 599
19.5.1  合格性面試 599
19.5.2  合適性面試 599
19.5.3  冰山模型 600
19.5.4  面試方法 601
19.6  面試跟進 603
19.7  面試總結 604
參考文獻 607

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號