网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | Offer来了 Java面试核心知识点精讲 框架篇 |
分类 | 人文社科-社会科学-语言文字 |
作者 | 王磊 |
出版社 | 电子工业出版社 |
下载 | ![]() |
简介 | 作者简介 王磊,现任靠前某知名互联网公司大数据技术架构师,有十余年丰富的物联网及大数据研发和技术架构经验,对物联网及大数据的原理和技术实现有深刻的理解。长期从事海外项目的研发和交付工作,对异地多活数据中心的建设及高可用、高并发系统的设计有丰富的实战经验。 目录 章 Spring原理及应用1 1.1 Spring的特性1 1.1.1 轻量2 1.1.2 控制反转2 1.1.3 面向容器2 1.1.4 面向切面2 1.1.5 框架灵活3 1.2 Spring的模块3 1.2.1 核心容器层3 1.Spring-Beans4 2.Spring-Core4 3.Spring-Context4 4.SpEL4 1.2.2 数据访问层4 1.JDBC5 2.ORM5 3.OXM5 4.JMS5 5.事务处理5 1.2.3 Web应用层6 1.Web6 2.Web-MVC6 3.Web-Socket6 4.Web-Portlet6 1.2.4 其他重要模块6 1.AOP6 2.Aspects7 3.Instrumentation7 4.Messaging7 5.Test7 1.3 Spring的核心JAR包7 1.4 Spring的注解8 1.4.1 Spring注解的使用9 1.导入命名空间及规范9 2.配置扫描包9 3.使用注解10 1.4.2 Spring的常用注解10 1.5 Spring IoC的原理12 1.5.1 Spring IoC简介12 1.5.2 Spring Bean的装配流程12 1.5.3 Spring Bean的作用域13 1.Singleton13 2.Prototype13 3.Request14 4.Session14 5.Global Session14 1.5.4 Spring Bean的生命周期14 1.5.5 Spring 的4种依赖注入16 1.构造器注入16 2.set方法注入16 3.静态工厂注入17 4.实例工厂注入18 1.5.6 自动装配的5种方式18 1.6 Spring AOP的原理19 1.6.1 Spring AOP简介19 1.6.2 AOP的核心概念20 1.6.3 AOP的2种代理方式20 1.6.4 AOP的5种通知类型21 1.6.5 AOP的代码实现22 1.7 Spring MVC的原理22 1.8 事务23 1.8.1 本地事务24 1.8.2 分布式事务25 1.8.3 两阶段提交协议26 1.准备阶段26 2.提交阶段26 1.9 MyBatis的缓存27 1.9.1 MyBatis的一级缓存原理28 1.9.2 MyBatis的二级缓存原理28 1.10 Spring的生态28 1.10.1 Spring Data29 1.Spring Data的特性29 2.Spring Data的主项目29 3.Spring Data的社区项目30 1.10.2 Spring的其他服务31 第2章 Spring Cloud原理及应用33 2.1 Spring Boot35 2.1.1 Spring Boot的使用35 2.1.2 Spring Boot Application Starters38 2.1.3 Spring Boot的常用组件及其使用40 1.Spring Boot使用MySQL40 2.Spring Boot使用Redis41 3.Spring Boot使用MongoDB42 4.Spring Boot使用Neo4j43 5.Spring Boot使用Solr43 6.Spring Boot使用ElasticSearch44 7.Spring Boot使用Cassandra44 8.Spring Boot使用RabbitMQ45 9.Spring Boot使用Kafka46 2.2 Spring Cloud Config47 2.2.1 Spring Cloud Config的原理48 2.2.2 Config Server的定义和使用48 2.2.3 Config Client51 2.3 Spring Cloud Eureka52 2.3.1 Spring Cloud Eureka的原理52 1.服务注册53 2.服务同步53 3.服务续约54 4.服务启动54 5.服务下线54 6.服务发现54 7.失效剔除54 2.3.2 Spring Cloud Eureka的使用55 1.注册中心的定义55 2.服务提供者的定义57 3.服务消费者的定义59 2.4 Spring Cloud Consul62 2.4.1 Spring Cloud Consul的原理62 1.Consul的特性62 2.Consul的角色63 3.Consul的服务注册与发现流程64 2.4.2 Spring Cloud Consul的使用65 1.Consul的服务启动65 2.Consul服务提供者的定义68 3.Consul服务消费者的定义70 2.5 Spring Cloud Feign71 2.5.1 Feign的应用72 2.5.2 Feign的常用注解74 2.6 Spring Cloud Hystrix74 2.6.1 Hystrix的特性75 1.服务熔断75 2.服务降级75 3.依赖隔离76 4.请求缓存76 5.请求合并76 2.6.2 Hystrix的服务降级流程77 2.6.3 Hystrix的使用78 2.6.4 异步请求80 1.Future80 2.Callable82 2.6.5 Hystrix的常用配置85 1.熔断的配置参数85 2.执行的配置参数85 2.6.7 Hystrix Dashboard87 2.7 Spring Cloud Zuul87 2.7.1 Zuul的概念和特点87 2.7.2 Zuul的原理88 2.7.3 Zuul的使用89 2.7.4 PreRequestFilter的定义和注入91 2.7.5 Fallback Provider的服务容错 92 2.8 Spring Cloud的链路监控94 2.8.1 Sleuth+Zipkin94 1.Sleuth的介绍94 2.Sleuth+Zipkin实现分布式链路追踪95 2.8.2 Pinpoint101 1.Pinpoint的介绍101 2.Pinpoint的组件104 3.Pinpoint的数据结构104 4.Pinpoint的字节码增强技术104 5.Pinpoint的使用105 第3章 Netty网络编程原理及应用107 3.1 Reactor线程模型107 3.1.1 Java NIO107 1.Channel108 2.Buffer108 3.Selector108 3.1.2 Reactor单线程模型109 3.1.3 Reactor多线程模型110 3.1.4 Reactor主从多线程模型110 3.2 Netty的架构111 3.2.1 Netty简介111 3.2.2 Netty的架构设计111 1.Transport Services112 2.Protocol Support112 3.Core114 3.2.3 Netty的核心组件114 3.2.4 Netty的原理115 1.Netty Server的初始化步骤115 2.BossGroup的职责116 3.WorkerGroup的职责117 3.3 Netty的特性118 3.3.1 I/O多路复用模型118 3.3.2 数据零拷贝118 3.3.3 内存重用机制119 3.3.4 无锁化设计120 3.3.5 高性能的序列化框架120 3.4 Netty的使用121 第4章 ZooKeeper原理及应用128 4.1 ZooKeeper的原理128 4.1.1 ZooKeeper的角色128 1.Leader129 2.Follower129 3.Observer129 4.1.2 ZAB协议129 1.ZAB协议的4个阶段130 2.ZAB协议的Java实现131 4.1.3 ZooKeeper的选举机制和流程131 4.2 ZooKeeper的应用133 4.2.1 ZooKeeper的数据模型133 1.Znode的数据模型133 2.Znode的控制访问134 3.Znode的节点类型134 4.Znode的节点Watch134 4.2.2 ZooKeeper的安装134 4.2.3 ZooKeeper的应用场景136 1.统一命名服务136 2.配置管理136 3.集群管理136 4.分布式通知协调136 5.分布式锁137 4.2.4 ZooKeeper节点的操作137 第5章 Kafka原理及应用143 5.1 Kafka的原理143 5.1.1 Kafka的组成143 5.1.2 Kafka的数据存储设计145 1.Partition数据文件145 2.Segment数据文件146 3.数据文件索引146 5.1.3 生产者并发设计147 1.多个Producer并发生产消息147 2.批量发送消息148 3.压缩消息148 5.1.4 消费者并发设计148 1.多个Consumer并发消费消息148 2.Consumer Group的概念和特性149 5.2 Kafka的应用150 5.2.1 Kafka的安装150 5.2.2 基于Spring Boot的Kafka应用152 第6章 Hadoop原理及应用156 6.1 HDFS156 6.1.1 Client156 6.1.2 NameNode157 6.1.3 Secondary NameNode157 6.1.4 DataNode157 1.HDFS文件的写入流程157 2.HDFS文件的读取流程158 3.HDFS数据副本159 6.2 MapReduce159 6.2.1 Job Client160 6.2.2 JobTracker160 6.2.3 TaskTracker160 6.2.4 Task161 6.2.5 Reduce Task的执行过程161 6.2.6 Hadoop MapReduce的作业生命周期162 6.3 YARN163 6.3.1 ResourceManager164 6.3.2 NodeManager164 6.3.3 ApplicationMaster165 6.3.4 Container165 6.3.5 YARN的任务提交和运行流程165 6.4 Hadoop的安装和应用167 6.4.1 Hadoop的安装167 6.4.2 Hadoop的应用172 1.MapReduce应用程序概述172 2.MapReduce应用程序的输入与输出模型173 3.在IDEA下运行MapReduce WordCount程序173 第7章 HBase原理及应用177 7.1 HBase的原理177 7.1.1 HBase的概念177 7.1.2 行式存储和列式存储178 1.行式存储的原理和特点178 2.列式存储的原理和特点179 7.1.3 HBase列式存储的数据模型180 1.Column Family180 2.RowKey180 3.Region180 4.TimeStamp181 7.1.4 HBase的架构组成181 1.HBase Client182 2.ZooKeeper182 3.HMaster182 4.Region Server182 7.1.5 HBase的数据读写流程184 1.HBase的数据写入流程184 2.HBase MemStore的刷盘逻辑185 3.HBase的数据读取流程186 4.HBase的数据删除186 5.HBase的数据更新187 7.2 HBase的使用187 7.2.1 HBase的安装187 7.2.2 基于Spring Boot的HBase应用190 第8章 Cassandra原理及应用197 8.1 Cassandra的原理197 8.1.1 Cassandra的特点197 8.1.2 Cassandra的数据模型198 1.Key Space198 2.Key199 3.Column199 4.Super Column199 5.Column Family199 6.Standard Column Family200 7.Super Column Family200 8.1.3 Gossip协议201 1.Gossip节点的通信方式201 2.Gossip协议的收敛性202 3.Cassandra中的Gossip协议202 8.1.4 NWR理论203 8.1.5 一致性Hash204 1.一致性Hash的原理204 2.一致性Hash的节点变动206 3.虚拟节点208 4.Cassandra虚拟节点设计208 5.一致性Hash的特点210 8.1.6 Cassandra的数据副本策略210 1.SimpleStrategy210 2.NetworkTopologyStrategy211 8.1.7 Cassandra数据存储211 1.Storage Model211 2.MemTable的刷盘策略212 3.SSTable的数据结构212 4.Commit Log213 5.Compaction213 8.1.8 Cassandra的数据写入214 1.Cassandra的数据写入机制:Log Structured214 2.Cassandra的数据写入流程214 8.1.9 Cassandra的数据读取216 1.数据读取和后台修复216 2.数据读取流程217 8.1.10 Cassandra的数据删除机制220 8.1.11 Cassandra和HBase的核心差别220 8.2 Cassandra的应用221 8.2.1 Cassandra的安装221 8.2.2 基于Spring Boot的Cassandra应用223 第9章 ElasticSearch原理及应用228 9.1 ElasticSearch的概念和原理228 9.1.1 Lucene的介绍228 1.Lucene简介228 2.倒排索引228 3.Lucene的架构229 4.Lucene的全文检索流程229 5.Lucene的使用232 9.1.2 ElasticSearch的特点236 9.1.3 ElasticSearch的应用场景237 9.1.4 ElasticSearch的数据模型237 1.Index238 2.Type238 3.Document239 4.Field239 5.Mapping239 6.Shard239 9.1.5 ElasticSearch分布式架构240 1.集群节点角色240 2.集群选举原理242 3.集群状态243 4.数据路由规则243 5.文档分片和副本策略244 9.1.6 ElasticSearch的写操作流程245 1.ElasticSearch的写操作245 2.数据写入一致性:Consistency246 9.1.7 ElasticSearch的读操作流程247 9.1.8 ElasticSearch中的Translog248 1.ElasticSearch Translog的介绍248 2.ElasticSearch的数据更新和Translog操作流程248 9.1.9 ElasticSearch段合并249 1.段合并的介绍249 2.段合并的流程250 9.1.10 ElasticSearch的集群扩容251 9.2 ElasticSearch的应用252 9.2.1 ElasticSearch的安装252 9.2.2 ElasticSearch的配置和性能调优254 1.JVM性能调优254 2.操作系统的性能调优254 9.2.3 ElasticSearch API的使用255 0章 Spark原理及应用263 10.1 Spark的原理263 10.1.1 Spark的特点264 1.计算速度快264 2.易于使用264 3.通用大数据框架264 4.支持多种资源管理器264 5.Spark生态圈丰富264 10.1.2 Spark的模块265 1.Spark Core265 2.Spark SQL266 3.Spark Streaming266 4.GraphX267 5.Spark MLlib267 6.SparkR267 10.1.3 Spark的运行原理267 1.Spark的运行模式267 2.Spark的集群架构268 3.Spark的运行流程269 10.2 Spark的使用270 10.2.1 Spark的安装270 10.2.2 Spark RDD的使用274 1.RDD的介绍274 2.RDD的核心结构及概念275 3.创建一个RDD应用277 4.利用外部数据集生成RDD279 5.RDD的转换和操作280 6.RDD持久化的概念、级别和原则281 7.Spark函数的定义283 8.键值对RDD的概念和使用284 9.RDD的常用转换285 10.RDD的常用操作285 11.Spark广播变量的概念和使用286 10.2.3 Spark Streaming的使用287 1.Spark Streaming的介绍287 2.创建一个Spark Streaming应用288 3.DStream和RDD的关系291 4.Spark Streaming的数据源292 5.DStream的操作293 6.DStream的数据持久化295 7.Spark Streaming的性能优化296 10.2.4 Spark SQL、DataFrame、DataSet的使用297 1.Spark SQL简介297 2.Spark SQL查询语句297 3.DataFrame297 4.DataSet297 5.创建一个Spark SQL应用298 6.Spark SQL的视图操作300 7.创建DataSet301 8.DataSet与RDD相互转换302 9.DataFrame数据的加载304 10.DataFrame数据的保存305 10.2.5 Spark Structured Streaming的使用305 1.Spark Structured Streaming简介305 2.Spark Structured Streaming的数据模型306 3.创建一个Spark Structured Streaming应用307 1章 Flink原理及应用311 11.1 Flink的原理311 11.1.1 Flink的特点312 11.1.2 Flink的核心概念314 1.Flink Cluster314 2.Flink Master314 3.Flink Job Manager314 4.Flink Task Manager314 5.Job314 6.Flink Graph314 7.Flink Operator和Operator Chain315 8.Flink Task和SubTask315 9.Event315 10.Function315 11.Flink Record315 12.Flink State Backend315 11.1.3 Flink架构介绍316 1.Job Manager的职责316 2.Task Manager的职责316 3.客户端316 4.Flink应用程序的运行流程317 5.Flink Task Slot资源分配318 6.Flink任务和算子319 7.Flink状态存储319 8.Flink运行模式321 11.1.4 Flink的事件驱动模型321 1.什么是事件驱动模型321 2.事件驱动模型的特点322 3.Flink的事件驱动模型的特点322 11.1.5 Flink的数据分析应用322 1.批量数据分析323 2.流式数据分析323 3.Flink中的流式数据分析324 11.1.6 Flink的数据清洗和数据管道324 1.数据清洗:定时处理324 2.数据管道:实时处理325 3.数据管道优势:实时性高325 4.Flink数据管道325 11.1.7 Flink数据流处理基本概念326 1.数据流326 2.状态326 3.时间327 11.1.8 API分类328 1.Process Function329 2.DataStream API330 3.SQL和Table API331 11.1.9 Flink基于状态的内存计算331 11.1.10 Flink的编程模型332 1.数据流332 2.并行度333 11.1.11 Flink窗口计算334 1.翻滚窗口334 2.滑动窗口335 3.会话窗口335 4.全局窗口336 11.1.12 Flink故障恢复337 1.重启策略337 2.故障恢复策略339 11.2 Flink的应用339 11.2.1 Flink的安装339 1.Flink的独立集群模式安装340 2.Flink的高可用模式安装343 11.2.2 Flink实战案例345 1.构建一个基于Java的Flink应用345 2.Flink DataStream API350 3.Flink DataSet API367 4.Flink Table API和SQL370 内容推荐 本书是对Java程序员面试中常见的微服务、网络编程、分布式存储和分布式计算等推荐知识点的总结,包括Spring原理及应用、Spring Cloud原理及应用、Netty网络编程原理及应用、ZooKeeper原理及应用、Kafka原理及应用、Hadoop原理及应用、HBase原理及应用、Cassandra原理及应用、ElasticSearch原理及应用、Spark原理及应用、Flink原理及应用。本书共11章,章讲解Spring原理及应用,涉及Spring IoC原理、Spring AOP原理、Spring MVC原理、事务、MyBatis缓存等内容;第2章讲解Spring Cloud原理及应用,涉及Spring Boot、Spring Cloud Config、Eureka、Consul、Hystrix、Zuul和Spring Cloud链路监控等内容;第3章讲解Netty网络编程原理及应用;第4章讲解ZooKeeper原理及应用,涉及ZooKeeper选举机制、ZooKeeper数据模型和ZooKeeper应用场景等内容;第5章讲解Kafka原理及应用,涉及Kafka组成、Kafka数据存储设计、Kafka生产者并发设计、Kafka消费者并发设计,以及Kafka安装和应用等内容;第6章讲解Hadoop原理及应用,涉及HDFS、MapReduce、YARN等内容;第7章讲解HBase原理及应用,涉及HBase列式存储数据模型、HBase架构组成和HBase数据读写流程等内容;第8章讲解Cassandra原理及应用,涉及Cassandra数据模型、Gossip协议、NWR理论、一致性Hash、Cassandra数据副本策略和读写机制等内容;第9章讲解ElasticSearch原理及应用,涉及ElasticSearch数据模型、ElasticSearch分布式架构、ElasticSearch数据读写原理和段合并等内容;0章讲解Spark原理及应用,涉及Spark特点、Spark模块组成、Spark运行机制,以及Spark RDD、Spark Streaming、Spark SQL、DataFrame、DataSet、Spark Structured Streaming的原理和使用等内容;1章讲解Flink原理及应用,涉及Flink核心概念、Flink架构、Flink事件驱动模型、Flink数据分析应用和Flink基于状态的内存计算等内容。本书可作为Java程序员的技术面试参考用书,也可作为Java程序员、大数据开发人员、技术经理和架构师的日常技术参考用书。 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。