| 作者 |
| 王磊 |
| 丛书名 |
| 出版社 |
| 电子工业出版社 |
| ISBN |
| 9787121386671 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书是对Java程序员面试中常见的微服务、网络编程、分布式存储和分布式计算等必备知识点的总结,具体包括:Spring Web编程、Spring Cloud微服务开发、Netty网络编程、ZooKeeper分布式协调器、Kafka分布式消息系统、Hadoop大数据存储和计算、HBase大数据存储、Cassandra大数据存储、ElasticSearch大数据存储、Spark大数据分析和Flink大数据分析。本书共11章,第1章讲解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数据读写原理和段合并等内容;第10章讲解Spark原理及应用,涉及Spark特点、Spark模块组成、Spark运行机制和Spark RDD、Spark Streaming、Spark SQL、DataFrame、DataSet、Spark Structured Streaming等原理和使用;第11章讲解Flink原理及应用,涉及Flink核心概念、Flink架构介绍、Flink事件驱动模型、Flink数据分析应用和Flink基于状态的内存计算等内容。 |
| 目录 |
第1章 Spring原理及应用\t1 1.1 Spring的特性\t1 1.1.1 轻量\t2 1.1.2 控制反转\t2 1.1.3 面向容器\t2 1.1.4 面向切面\t2 1.1.5 框架灵活\t3 1.2 Spring的模块\t3 1.2.1 核心容器层\t3 1.Spring-Beans\t4 2.Spring-Core\t4 3.Spring-Context\t4 4.SpEL\t4 1.2.2 数据访问层\t4 1.JDBC\t5 2.ORM\t5 3.OXM\t5 4.JMS\t5 5.事务处理\t5 1.2.3 Web应用层\t6 1.Web\t6 2.Web-MVC\t6 3.Web-Socket\t6 4.Web-Portlet\t6 1.2.4 其他重要模块\t6 1.AOP\t6 2.Aspects\t7 3.Instrumentation\t7 4.Messaging\t7 5.Test\t7 1.3 Spring的核心JAR包\t7 1.4 Spring的注解\t8 1.4.1 Spring注解的使用\t9 1.导入命名空间及规范\t9 2.配置扫描包\t9 3.使用注解\t10 1.4.2 Spring的常用注解\t10 1.5 Spring IoC的原理\t12 1.5.1 Spring IoC简介\t12 1.5.2 Spring Bean的装配流程\t12 1.5.3 Spring Bean的作用域\t13 1.Singleton\t13 2.Prototype\t13 3.Request\t14 4.Session\t14 5.Global Session\t14 1.5.4 Spring Bean的生命周期\t14 1.5.5 Spring 的4种依赖注入\t16 1.构造器注入\t16 2.set方法注入\t16 3.静态工厂注入\t17 4.实例工厂注入\t18 1.5.6 自动装配的5种方式\t18 1.6 Spring AOP的原理\t19 1.6.1 Spring AOP简介\t19 1.6.2 AOP的核心概念\t20 1.6.3 AOP的2种代理方式\t20 1.6.4 AOP的5种通知类型\t21 1.6.5 AOP的代码实现\t22 1.7 Spring MVC的原理\t22 1.8 事务\t23 1.8.1 本地事务\t24 1.8.2 分布式事务\t25 1.8.3 两阶段提交协议\t26 1.准备阶段\t26 2.提交阶段\t26 1.9 MyBatis的缓存\t27 1.9.1 MyBatis的一级缓存原理\t28 1.9.2 MyBatis的二级缓存原理\t28 1.10 Spring的生态\t28 1.10.1 Spring Data\t29 1.Spring Data的特性\t29 2.Spring Data的主项目\t29 3.Spring Data的社区项目\t30 1.10.2 Spring的其他服务\t31 第2章 Spring Cloud原理及应用\t33 2.1 Spring Boot\t35 2.1.1 Spring Boot的使用\t35 2.1.2 Spring Boot Application Starters\t38 2.1.3 Spring Boot的常用组件及其使用\t40 1.Spring Boot使用MySQL\t40 2.Spring Boot使用Redis\t41 3.Spring Boot使用MongoDB\t42 4.Spring Boot使用Neo4j\t43 5.Spring Boot使用Solr\t43 6.Spring Boot使用ElasticSearch\t44 7.Spring Boot使用Cassandra\t44 8.Spring Boot使用RabbitMQ\t45 9.Spring Boot使用Kafka\t46 2.2 Spring Cloud Config\t47 2.2.1 Spring Cloud Config的原理\t48 2.2.2 Config Server的定义和使用\t48 2.2.3 Config Client\t51 2.3 Spring Cloud Eureka\t52 2.3.1 Spring Cloud Eureka的原理\t52 1.服务注册\t53 2.服务同步\t53 3.服务续约\t54 4.服务启动\t54 5.服务下线\t54 6.服务发现\t54 7.失效剔除\t54 2.3.2 Spring Cloud Eureka的使用\t55 1.注册中心的定义\t55 2.服务提供者的定义\t57 3.服务消费者的定义\t59 2.4 Spring Cloud Consul\t62 2.4.1 Spring Cloud Consul的原理\t62 1.Consul的特性\t62 2.Consul的角色\t63 3.Consul的服务注册与发现流程\t64 2.4.2 Spring Cloud Consul的使用\t65 1.Consul的服务启动\t65 2.Consul服务提供者的定义\t68 3.Consul服务消费者的定义\t70 2.5 Spring Cloud Feign\t71 2.5.1 Feign的应用\t72 2.5.2 Feign的常用注解\t74 2.6 Spring Cloud Hystrix\t74 2.6.1 Hystrix的特性\t75 1.服务熔断\t75 2.服务降级\t75 3.依赖隔离\t76 4.请求缓存\t76 5.请求合并\t76 2.6.2 Hystrix的服务降级流程\t77 2.6.3 Hystrix的使用\t78 2.6.4 异步请求\t80 1.Future\t80 2.Callable\t82 2.6.5 Hystrix的常用配置\t85 1.熔断的配置参数\t85 2.执行的配置参数\t85 2.6.7 Hystrix Dashboard\t87 2.7 Spring Cloud Zuul\t87 2.7.1 Zuul的概念和特点\t87 2.7.2 Zuul的原理\t88 2.7.3 Zuul的使用\t89 2.7.4 PreRequestFilter的定义和注入\t91 2.7.5 Fallback Provider的服务容错 \t92 2.8 Spring Cloud的链路监控\t94 2.8.1 Sleuth+Zipkin\t 94 1.Sleuth的介绍\t94 2.Sleuth+Zipkin实现分布式链路追踪\t95 2.8.2 Pinpoint\t101 1.Pinpoint的介绍\t101 2.Pinpoint的组件\t104 3.Pinpoint的数据结构\t104 4.Pinpoint的字节码增强技术\t104 5.Pinpoint的使用\t105 第3章 Netty网络编程原理及应用\t107 3.1 Reactor线程模型\t107 3.1.1 Java NIO\t107 1.Channel\t108 2.Buffer\t108 3.Selector\t108 3.1.2 Reactor单线程模型\t109 3.1.3 Reactor多线程模型\t110 3.1.4 Reactor主从多线程模型\t110 3.2 Netty的架构\t111 3.2.1 Netty简介\t111 3.2.2 Netty的架构设计\t111 1.Transport Services\t112 2.Protocol Support\t112 3.Core\t114 3.2.3 Netty的核心组件\t114 3.2.4 Netty的原理\t115 1.Netty Server的初始化步骤\t115 2.BossGroup的职责\t116 3.WorkerGroup的职责\t117 3.3 Netty的特性\t118 3.3.1 I/O多路复用模型\t118 3.3.2 数据零拷贝\t118 3.3.3 内存重用机制\t119 3.3.4 无锁化设计\t120 3.3.5 高性能的序列化框架\t120 3.4 Netty的使用\t121 第4章 ZooKeeper原理及应用\t128 4.1 ZooKeeper的原理\t128 4.1.1 ZooKeeper的角色\t128 1.Leader\t129 2.Follower\t129 3.Observer\t129 4.1.2 ZAB协议\t129 1.ZAB协议的4个阶段\t130 2.ZAB协议的Java实现\t131 4.1.3 ZooKeeper的选举机制和流程\t131 4.2 ZooKeeper的应用\t133 4.2.1 ZooKeeper的数据模型\t133 1.Znode的数据模型\t133 2.Znode的控制访问\t134 3.Znode的节点类型\t134 4.Znode的节点Watch\t134 4.2.2 ZooKeeper的安装\t134 4.2.3 ZooKeeper的应用场景\t136 1.统一命名服务\t136 2.配置管理\t136 3.集群管理\t136 4.分布式通知协调\t136 5.分布式锁\t137 4.2.4 ZooKeeper节点的操作\t137 第5章 Kafka原理及应用\t143 5.1 Kafka的原理\t143 5.1.1 Kafka的组成\t143 5.1.2 Kafka的数据存储设计\t145 1.Partition数据文件\t145 2.Segment数据文件\t146 3.数据文件索引\t146 5.1.3 生产者并发设计\t147 1.多个Producer并发生产消息\t147 2.批量发送消息\t148 3.压缩消息\t148 5.1.4 消费者并发设计\t148 1.多个Consumer并发消费消息\t148 2.Consumer Group的概念和特性\t149 5.2 Kafka的应用\t150 5.2.1 Kafka的安装\t150 5.2.2 基于Spring Boot的Kafka应用\t152 第6章 Hadoop原理及应用\t156 6.1 HDFS\t156 6.1.1 Client\t156 6.1.2 NameNode\t157 6.1.3 Secondary NameNode\t157 6.1.4 DataNode\t157 1.HDFS文件的写入流程\t157 2.HDFS文件的读取流程\t158 3.HDFS数据副本\t159 6.2 MapReduce\t159 6.2.1 Job Client\t160 6.2.2 JobTracker\t160 6.2.3 TaskTracker\t160 6.2.4 Task\t161 6.2.5 Reduce Task的执行过程\t161 6.2.6 Hadoop MapReduce的作业生命周期\t162 6.3 YARN\t163 6.3.1 ResourceManager\t164 6.3.2 NodeManager\t164 6.3.3 ApplicationMaster\t165 6.3.4 Container\t165 6.3.5 YARN的任务提交和运行流程\t165 6.4 Hadoop的安装和应用\t167 6.4.1 Hadoop的安装\t167 6.4.2 Hadoop的应用\t172 1.MapReduce应用程序概述\t172 2.MapReduce应用程序的输入与输出模型\t173 3.在IDEA下运行MapReduce WordCount程序\t173 第7章 HBase原理及应用\t177 7.1 HBase的原理\t177 7.1.1 HBase的概念\t177 7.1.2 行式存储和列式存储\t178 1.行式存储的原理和特点\t178 2.列式存储的原理和特点\t179 7.1.3 HBase列式存储的数据模型\t180 1.Column Family\t180 2.RowKey\t180 3.Region\t180 4.TimeStamp\t181 7.1.4 HBase的架构组成\t181 1.HBase Client\t182 2.ZooKeeper\t182 3.HMaster\t182 4.Region Server\t182 7.1.5 HBase的数据读写流程\t184 1.HBase的数据写入流程\t184 2.HBase MemStore的刷盘逻辑\t185 3.HBase的数据读取流程\t186 4.HBase的数据删除\t186 5.HBase的数据更新\t187 7.2 HBase的使用\t187 7.2.1 HBase的安装\t187 7.2.2 基于Spring Boot的HBase应用\t190 第8章 Cassandra原理及应用\t197 8.1 Cassandra的原理\t197 8.1.1 Cassandra的特点\t197 8.1.2 Cassandra的数据模型\t198 1.Key Space\t198 2.Key\t199 3.Column\t199 4.Super Column\t199 5.Column Family\t199 6.Standard Column Family\t200 7.Super Column Family\t200 8.1.3 Gossip协议\t201 1.Gossip节点的通信方式\t201 2.Gossip协议的收敛性\t202 3.Cassandra中的Gossip协议\t202 8.1.4 NWR理论\t203 8.1.5 一致性Hash\t204 1.一致性Hash的原理\t204 2.一致性Hash的节点变动\t206 3. |