Java應用開發關鍵技術與面試技巧

周冠亞

  • 出版商: 清華大學
  • 出版日期: 2025-01-01
  • 定價: $894
  • 售價: 8.5$760
  • 語言: 簡體中文
  • ISBN: 7302676879
  • ISBN-13: 9787302676874
  • 相關分類: 面試技巧
  • 下單後立即進貨 (約4週~6週)

  • Java應用開發關鍵技術與面試技巧-preview-1
  • Java應用開發關鍵技術與面試技巧-preview-2
  • Java應用開發關鍵技術與面試技巧-preview-3
Java應用開發關鍵技術與面試技巧-preview-1

相關主題

商品描述

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

目錄大綱

目    錄

第1篇  應用框架

第 1 章  Spring 2

1.1  Spring概述 2

1.1.1  Spring是什麽 2

1.1.2  Spring的優點是什麽 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  企業開發中常用的AOP技術 83

1.3.3  JDK動態代理使用案例 84

1.3.4  JDK動態代理的工作原理 87

1.3.5  CGLib動態代理使用案例 91

1.3.6  CGLib動態代理的工作原理 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  事務並發執行引發的問題 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有什麽區別 166

1.6.3  BeanFactory和ApplicationContext有什麽區別 166

1.6.4  Spring Bean的生命周期包含哪些過程 167

1.6.5  Spring Bean的作用域有哪幾種 167

1.6.6  Spring如何解決循環依賴 168

1.6.7  Spring的自動裝配是如何實現的 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動態代理 170

1.6.15  什麽是CGLib動態代理 171

1.6.16  JDK動態代理與CGLib動態代理有什麽區別 171

1.6.17  Spring AOP中有哪些Advice類型 171

1.6.18  動態代理與靜態代理的區別是什麽 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  一級緩存可以優化查詢效率 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  一級緩存執行原理分析 194

2.7  MyBatis二級緩存有哪些特性 200

2.7.1  二級緩存非默認開啟 200

2.7.2  在事務提交前二級緩存不生效 201

2.7.3  在事務提交後二級緩存會生效 202

2.7.4  當發生更新時二級緩存會被刷新 204

2.8  MyBatis二級緩存的原理是什麽 205

2.9  如何編寫MyBatis插件 211

2.9.1  實現Interceptor接口 211

2.9.2  MyBatis插件植入 212

2.9.3  MyBatis插件執行邏輯 214

2.10  簡述MyBatis執行SQL的過程 215

2.10.1  MyBatis創建代理對象分析 216

2.10.2  MyBatis代理對象邏輯分析 218

2.10.3  SQL語句執行過程分析 223

2.11  MyBatis面試押題 227

2.11.1  什麽是MyBatis 227

2.11.2  MyBatis有哪些優缺點 227

2.11.3  MyBatis框架的適用場景有哪些 227

2.11.4  MyBatis與Hibernate有哪些異同點 228

2.11.5  MyBatis中的#{}和${}的區別是什麽 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開發的應用程序的性能 231

2.11.11  MyBatis如何實現數據庫的讀寫分離 232

第2篇  分佈式高並發

第 3 章  高並發分流 234

3.1  分佈式架構概念解釋 234

3.2  企業系統架構的演進歷程 235

3.2.1  單機架構 235

3.2.2  第一次演進:Web服務器與數據庫獨立部署 236

3.2.3  第二次演進:引入本地緩存和分佈式緩存 237

3.2.4  第三次演進:引入反向代理 237

3.2.5  第四次演進:引入數據庫讀寫分離 238

3.2.6  第五次演進:引入按業務拆分數據庫 238

3.2.7  第六次演進:引入分庫分表 240

3.2.8  第七次演進:引入使用LVS或F5 240

3.2.9  第八次演進:通過DNS實現機房間的負載均衡 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  高並發分流面試押題 258

3.6.1  什麽是分佈式架構 258

3.6.2  什麽是面向服務的架構 258

3.6.3  什麽是微服務架構 258

3.6.4  SOA架構和微服務架構的區別和聯系 259

3.6.5  什麽是容器化架構 259

3.6.6  正向代理與反向代理的區別是什麽 260

3.6.7  微服務拆分的依據 260

3.6.8  OpenResty和Nginx的區別與聯系 261

3.6.9  如何使用Nginx實現灰度發布 261

第 4 章  分佈式協調服務 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有哪些節點類型 265

4.3  ZooKeeper節點有哪幾種角色 266

4.4  什麽是ZooKeeper的Watch機制 267

4.5  什麽是ZooKeeper ACL權限控制 268

4.6  Paxos算法的原理是什麽 269

4.6.1  分佈式系統面臨的挑戰 269

4.6.2  分佈式系統難題的轉換 270

4.6.3  Paxos算法的執行過程 271

4.6.4  Paxos算法示例 273

4.7  基於Paxos的優化算法有哪些 275

4.7.1  Multi Paxos算法 275

4.7.2  Fast Paxos算法 275

4.8  ZAB協議的原理是什麽 276

4.8.1  原子廣播 276

4.8.2  故障恢復 278

4.8.3  ZXID生成規則 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的節點類型有哪些 298

4.10.3  ZooKeeper保障的是CP還是AP機制 298

4.10.4  ZooKeeper是如何實現通知機制的 298

4.10.5  ZooKeeper的節點有哪幾種角色 299

4.10.6  簡述Paxos算法的原理 299

4.10.7  簡述ZAB協議的原理 299

4.10.8  如何利用ZooKeeper實現分佈式鎖 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如何實現集群容錯 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如何實現負載均衡 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  業務線程 314

5.5  Dubbo跨多註冊中心的能力 314

5.6  Dubbo服務分組 319

5.7  Dubbo SPI機制的原理是什麽 320

5.7.1  SPI和API的區別和聯系 320

5.7.2  JDK SPI機制的實現 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服務註冊與發現的流程 337

5.8.4  簡述主流RPC框架的異同點 338

5.8.5  Dubbo支持哪些負載均衡策略 338

5.8.6  Dubbo負載均衡在客戶端還是服務端實現 338

5.8.7  Dubbo支持的通信協議 338

5.8.8  簡述Dubbo SPI與Java SPI的異同點 339

5.8.9  Dubbo如何實現服務提供方失效移除 339

5.8.10  如何合理地設置Dubbo超時時間 340

第 6 章  Redis 341

6.1  Redis常用的數據類型 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支持哪些數據結構 343

6.2.1  簡單動態字符串 344

6.2.2  鏈表 344

6.2.3  跳躍表 345

6.2.4  壓縮列表 345

6.2.5  哈希表 346

6.2.6  整數集合 348

6.3  Redis如何實現持久化 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  哨兵領導者選舉規約 355

6.5.6  哨兵領導者選舉過程 356

6.5.7  Redis哨兵架構故障轉移 356

6.6  Redis集群部署架構 357

6.6.1  Redis集群架構的工作原理 357

6.6.2  Redis集群架構數據分片 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  方案一:先更新數據庫後更新緩存 369

6.7.2  方案二:先更新緩存後更新數據庫 370

6.7.3  方案三:先刪除緩存後更新數據庫 370

6.7.4  方案四:先更新數據庫後刪除緩存 371

6.7.5  方案五:緩存延時雙刪解決方案 372

6.7.6  方案六:監聽數據庫解決方案 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  簡述企業開發中使用到Redis緩存的場景 381

6.14.3  Redis與Guava Cache有哪些異同點 382

6.14.4  Redis與Memcached相比有哪些異同點 383

6.14.5  Redis為什麽能實現高性能 384

6.14.6  Redis支持哪些數據類型 384

6.14.7  Redis內部的數據結構有哪些 384

6.14.8  如何使用Redis實現計數器 384

6.14.9  如何使用Redis實現消息隊列的發布訂閱 384

6.14.10  如何使用Redis實現分佈式鎖 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事務有哪些優缺點 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  分區順序消息 391

7.1.11  全局順序消息 391

7.1.12  RocketMQ消息模型 392

7.2  RocketMQ如何實現事務消息 393

7.3  RocketMQ如何實現順序消息 396

7.4  RocketMQ如何實現延遲消息 400

7.5  RocketMQ如何實現消息重試 404

7.5.1  生產者消息重試 404

7.5.2  消費者消息重試 404

7.5.3  消息冪等 405

7.6  RocketMQ如何實現死信消息 405

7.7  RocketMQ如何實現消息過濾 406

7.7.1  基於tag的消息過濾 406

7.7.2  基於SQL表達式的消息過濾 408

7.7.3  基於消費者端的消息過濾 410

7.8  RocketMQ如何實現消息負載均衡 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  企業開發中使用MQ的場景有哪些 412

7.10.2  簡述RocketMQ的架構 413

7.10.3  RocketMQ如何實現消息過濾 413

7.10.4  如何保障RocketMQ的消息不重不丟 413

7.10.5  RocketMQ如何實現事務消息 413

7.10.6  什麽是RocketMQ的半消息 413

7.10.7  RocketMQ的刷盤機制是什麽 414

7.10.8  RocketMQ如何實現負載均衡 414

7.10.9  什麽是RocketMQ的死信隊列 414

7.10.10  什麽是消息冪等 414

7.10.11  什麽是RocketMQ的推模式和拉模式 415

7.10.12  RocketMQ如何實現順序消息 415

7.10.13  RocketMQ如何實現延遲消息 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分區副本的選舉策略有哪些 430

8.7  Kafka的協調器有哪些 430

8.7.1  消費者協調器 431

8.7.2  組協調器 431

8.8  Kafka的分區重平衡機制有哪些 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生產者發送消息有哪些模式 437

8.10.5  Kafka如何實現負載均衡 437

8.10.6  Kafka的Topic分區數越多越好嗎 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  數據節點 447

9.2.7  分片算法 447

9.3  ShardingSphere如何實現分佈式主鍵 448

9.4  ShardingSphere支持哪些類型的事務 449

9.4.1  LOCAL事務 449

9.4.2  XA事務 450

9.4.3  BASE事務 451

9.5  ShardingSphere如何實現讀寫分離 451

9.5.1  主庫和從庫 452

9.5.2  主從同步 452

9.5.3  ShardingSphere讀寫分離支持 452

9.6  ShardingSphere支持哪些數據分片算法 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執行 454

9.7.5  結果歸並 454

9.8  ShardingSphere面試押題 455

9.8.1  ShardingSphere是什麽 455

9.8.2  ShardingSphere支持哪些數據庫 455

9.8.3  企業開發中哪些場景會用到ShardingSphere 456

9.8.4  ShardingSphere的核心功能有哪些 456

9.8.5  ShardingSphere支持的數據分片技術有哪些 457

9.8.6  數據分片技術有哪些優缺點 457

9.8.7  ShardingSphere與Mycat有哪些異同點 458

9.8.8  數據分片技術和分佈式數據庫之間如何權衡 459

9.8.9  如何優化一張大數據量表的查詢速度 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  企業開發中產生分佈式事務的場景有哪些 481

10.8.3  強一致性、弱一致性和最終一致性的異同點 482

10.8.4  什麽是CAP理論 482

10.8.5  什麽是BASE理論 482

10.8.6  分佈式事務常見的解決方案有哪些 483

10.8.7  簡述工作中遇到的分佈式事務場景及挑戰 483

10.8.8  簡述常見的中間件及其面臨的分佈式事務問題 484

第 11 章  MongoDB 485

11.1  MongoDB支持哪些數據類型 485

11.2  MongoDB的核心概念 486

11.2.1  數據庫 486

11.2.2  集合 486

11.2.3  文檔 487

11.2.4  數據字段/域 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的執行計劃 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與傳統關系數據庫的異同點 499

11.7.3  簡述MongoDB與MySQL數據庫中的概念對比 500

11.7.4  簡述MongoDB與CouchBase的異同點 500

11.7.5  MongoDB中的分析器有什麽用途 501

11.7.6  MongoDB的主節點和從節點如何實現數據同步 501

11.7.7  MongoDB的ObjectId生成規則是什麽 502

11.7.8  企業開發中使用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如何實現集群發現 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如何實現一致性 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有什麽區別 529

12.8.6  Elasticsearch中的query和filter有什麽區別 529

12.8.7  簡述Elasticsearch的數據寫入流程 530

12.8.8  Elasticsearch的數據是如何存儲的 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  微服務架構常用的網關框架有哪些 543

13.5.6  微服務架構常用的流量管控框架有哪些 543

13.5.7  微服務架構常用的配置中心框架有哪些 544

13.5.8  簡述企業開發中的微服務架構 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  如何實現自定義的Ribbon負載均衡策略 562

第 16 章  OpenFeign 563

16.1  OpenFeign與Feign有哪些異同點 563

16.2  OpenFeign的架構原理 564

16.3  OpenFeign的實現原理是什麽 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有什麽區別 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如何實現請求緩存 575

17.3.4  Hystrix如何實現限流 575

17.3.5  Hystrix如何實現熔斷 575

17.3.6  什麽場景會觸發Hystrix降級 576

17.3.7  簡述Hystrix、Sentinel和Resilience4j之間的異同點 576

第 18 章  API網關 578

18.1  API網關概述 578

18.2  多種API網關對比 579

18.2.1  Nginx 579

18.2.2  Zuul 579

18.2.3  Kong 580

18.2.4  Gateway 581

18.3  API網關面試押題 583

18.3.1  什麽是API網關 583

18.3.2  對比常見的API網關 583

18.3.3  如何在網關實現用戶統一鑒權 583

18.3.4  如何在網關實現灰度發布 584

第4篇  面試技巧

第 19 章  面試籌劃 586

19.1  簡歷構造 586

19.1.1  個人信息 586

19.1.2  個人優勢 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  厚積薄發 592

19.3  面試心態 593

19.3.1  候選人分析 593

19.3.2  面試官分析 595

19.4  面試刷題 597

19.4.1  機試刷題 597

19.4.2  現場面試刷題 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