前言
本书是对Java程序员面试中常见的微服务、网络编程、分布式存储和分布式计算等必备知识点的总结,包括Spring原理及应用、Spring Cloud原理及应用、Netty网络编程原理及应用、ZooKeeper原理及应用、Kafka原理及应用、Hadoop原理及应用、HBase原理及应用、Cassandra原理及应用、ElasticSearch原理及应用、Spark原理及应用、Flink原理及应用。希望读者能通过阅读本书对微服务、网络编程和分布式系统有更深入、系统和全面的理解。
面试官通常会在短短两小时内对面试者的知识结构进行全面了解,面试者在回答问题时如果拖泥带水且不能直击问题的本质,则很难充分表现自己,最终影响面试结果。针对这种情况,本书对Java分布式架构中常用的技术做了梳理和总结,在介绍知识点时重点介绍原理,同时辅以示例。本书在讲解知识点时不拖泥带水,力求精简,用115张原理图和流程图以非常直观的方式对Java程序员面试时常被问及的分布式架构核心知识点进行介绍。
章节架构
本书共11章,各章所讲内容如下。
第1章讲解Spring原理及应用,涉及Spring原理、Spring注解、Spring IoC原理、Spring AOP原理、Spring MVC原理、事务、MyBatis缓存等内容。
第2章讲解Spring Cloud原理及应用,涉及Spring Boot、Spring Cloud Config、Eureka、Consul、Hystrix、Zuul和Spring Cloud链路监控等内容。
第3章讲解Netty网络编程原理及应用,涉及Reactor线程模型、Netty架构、Netty特性和Netty使用等内容。
第4章讲解ZooKeeper原理及应用,涉及ZooKeeper原理、ZooKeeper选举机制、ZooKeeper数据模型和ZooKeeper应用场景等内容。
第5章讲解Kafka原理及应用,涉及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基于状态的内存计算等内容。
阅读建议
本书目录细致,建议读者在阅读本书后以原理图和流程图为依据、以目录为参考温故而知新,达到融会贯通的目的。建议读者花4周进行细读,详细理解书中的知识点、代码和架构图,在每个章节阅读完成后都手绘原理图和流程图;在细读完成后再花5天进行复习,对照手绘的原理图回忆知识点,针对想不起来的知识点及时查漏补缺;在面试前再花3小时进行复习,以充分掌握本书知识点。这样,读者对书中每个知识点的广度和深度的理解就会更充分,在面试时可以胸有成竹、百战不殆。
致谢
感谢电子工业出版社博文视点的张国霞编辑,她的鼓励和引导对本书的写作和出版有很大的帮助,同时感谢李秀梅编辑对本书的细致编辑;感谢王晓东,是他关注并向编辑提出了本书的出版价值。
写技术书籍是很耗费精力的,笔者常常因为一行代码或者一张图能否准确表达含义而思考再三。出于工作的原因,笔者只能在晚上和周末写作,写作难度很大,所以十分感谢妻子张艳娇女士,没有她的鼓励和支持,本书很难顺利出版;也十分感谢家人和朋友在工作和生活中对笔者的关心和帮助。在这里,衷心地祝愿大家身体健康,万事如意。
读者服务
扫码回复:38667
·获取博文视点学院20元优惠券
·获取免费增值资源
·加入本书读者交流群,与本书作者互动
·获取精选书单推荐