网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 Java应用开发关键技术与面试技巧
分类 教育考试-考试-计算机类
作者 周冠亚
出版社 清华大学出版社
下载
简介
内容推荐
本书全面介绍了现代Java应用开发核心技术和很好实践,旨在帮助读者掌握企业级Java应用开发技术并能够成功地应对名企的面试和挑战。本书共19章,内容主要包括Spring框架、MyBatis与ORM、高并发处理、分布式协调服务、Dubbo框架、缓存技术、消息队列、数据库分片、分布式事务、NoSQL数据库、微服务架构、服务治理、容错机制、API网关。除每章章末提供的核心知识点和面试题外,本书还单独就面试列出一章“面试筹划”,从简历构造、面试攻略、面试心态、面试刷题、面试技巧、面试跟进以及面试总结,详尽地指导读者了解整个面试过程。
本书不仅覆盖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
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/3/25 7:39:10