随着软件行业的飞速发展,互联网公司对开发者的技能要求也越来越高。而高并发、网络编程、微服务、海量数据的处理等技能,是每一个开发者进阶时的必学知识。为了帮助初级开发者快速掌握这些实用技术,本书以“理论+范例”的形式对各个知识点进行了详细的讲解,力争让读者在实践中快速掌握相关知识。
本书的创作缘起于在线教育。2018年暑假,我将录制的部分课程发布在网易云课堂、腾讯课堂等平台,期望帮助更多的Java开发者和学习者。不久后,我陆续收到了W3Cschool、爱课邦(爱奇艺合作方)、CCtalk(沪江旗下教育平台)等知名在线教育平台的入驻邀请。同时,岳福丽编辑也联系到了我,在多次深入沟通后,我决定用文字的形式向Java爱好者分享自己的知识,之后就开始了本书的编写工作。
在编写本书期间,我在工业和信息化部人才交流中心—蓝桥学院担任西北地区的教学督导,同时也从事公司在西安地区的教学工作。本书的部分内容来自我和罗召勇、徐静、张超等老师的日常交流,并且也参考了多位优秀的已就业学生的反馈意见。
有Java、数据库和Web基础的学生。
初、中级Java开发人员。
想学习高并发或互联网新技术的高级Java程序员、互联网架构师。
高校及软件开发培训机构的教师和学生。
案例完整
本书的所有案例都是以“理论讲解+环境搭建+完整代码及分析+运行截图”这种完善的结构进行讲解。此外,复杂的案例配有项目结构图,难度较高的案例还分析了底层源码。所有案例的讲解都考虑到了读者可能会遇到的各种问题。例如,在讲解MapReduce时,考虑到部分读者可能没有Linux基础,就以非常精练的语句讲解了如何在虚拟机上安装Linux系统环境(并且讲解了CentOS 6和CentOS 7两种常用版本),以及Linux常用操作,并且对Linux的讲解范围仅限于MapReduce所涉及的范围,确保讲解的重点没有偏离。
如果你希望通过阅读本书快速实现某些功能,那么直接按照书中的操作步骤和源码输入就可以了。
如果你希望深入学习书中的某些技术,可以仔细阅读书中的知识点、图解、源码及分析过程,并通过书中的运行截图来验证代码。当然,动手实践书中的相关案例也是不可或缺的。
如果你希望成为高并发或架构设计的高手,就需要细心研读书中的每句讲解,动手实践书中的所有案例,并将这些知识运用到自己的实际工作中。
案例经典实用
本书中的案例大多是由真实项目简化而来,既体现了所述知识点的精华,又屏蔽了无关技术的干扰。此外,本书在讲解案例时,也充分考量了相关知识的实际应用场景,对同一个技术在多个场景下的不同角色做了充分讲解。
本书从并发的底层核心技术(第2~6章)、互联网应用框架(第7~13章)、数据处理(第14~18章)等三部分对高并发系列技术做了系统讲解,几乎所有的知识点都配有详细的案例代码、运行流程的解读及运行结果的截图。
本书的前两章,介绍了全书的知识体系、各章节之间的内在联系,从宏观的角度介绍了大型项目的架构设计和系统分析。然后讲解了全书所涉及的核心底层技术、应用框架和数据存储/数据处理等技术。总体遵循了“宏观掌握—基础功底—应用框架—数据处理”的讲解思路。
相信读者通过阅读本书,可以快速掌握架构设计和高并发等各方面的实用技术,切实提高自己的技术水平。也希望读者能够将其中的技术用于自己的日常开发工作中,对已有项目进行升级改造,进而提高项目的质量和后续的开发效率。
为了便于阅读,下面列出了阅读本书的各个章节时需要的知识储备。其中“必备基础”是阅读时必须掌握的知识,“最佳搭配”是阅读时如果已经掌握了所述知识,则效果更佳。
◇ 第1章 高并发概述
必备基础:无 最佳搭配:有软件开发经验
◇ 第2章 系统分析与大型互联网架构设计
必备基础:Web后台开发 最佳搭配:有并发编程及架构设计经验
◇ 第3章 高并发相关 JVM 与 JDK 新特性案例讲解
必备基础:Java SE 最佳搭配:JVM、函数式编程
◇ 第4章 实战解析多线程并发包
必备基础:Java SE、多线程 最佳搭配:有并发编程经验
◇ 第5章 分布式网络编程核心技术—远程调用
必备基础:Java SE、Socket编程 最佳搭配:计算机网络
◇ 第6章 NIO 案例解析与高性能聊天室实战
必备基础:Java SE、IO编程 最佳搭配:Reactor模式、Proactor模式
◇ 第7章 高性能 NIO 框架 Netty 实例详解
必备基础:Java SE、B/S架构、C/S架构 最佳搭配:NIO、RPC
◇ 第8章 主流 RPC 框架解析与跨语言调用案例
必备基础:Java SE、RPC最佳搭配:Python、NodeJs、Hadoop
◇ 第9章 实战解析高并发框架 Disruptor
必备基础:Java SE、多线程 最佳搭配:有并发编程经验
◇ 第10章 手把手开发微服务构建框架 Spring Boot
必备基础:Java SE、Java Web最佳搭配:SSM
◇ 第11章 Spring 全家桶—使用 Spring Boot 整合常见 Web 组件
必备基础:Java SE、SSM、Spring Boot、MySQL最佳搭配:Redis、消息队列
◇ 第12章 微服务治理框架 Spring Cloud 理论与案例解析
必备基础:Java SE、SSM、Spring Boot、MySQL最佳搭配:分布式、集群、网关、Git
◇ 第13章 通过案例讲解分布式服务框架 Dubbo
必备基础:Java SE、SSM、Maven、MySQL最佳搭配:分布式、集群
◇ 第14章 MySQL 性能调优案例实战
必备基础:MySQL最佳搭配:有性能优化经验
◇ 第15章 基于海量数据的高性能高可用数据库方案的设计与实现
必备基础:MySQL、CentOS搭建、Oracle
◇ 第16章 使用 Redis 实现持久化与高速缓存功能
必备基础:Java SE、MySQL
◇ 第17章 分布式计算框架 MapReduce 入门详解
必备基础:Java SE、CentOS搭建
◇ 第18章 通过典型案例剖析 MapReduce 内部机制
必备基础:Java SE、CentOS搭建、MapReduce
最佳搭配:有架构设计经验
最佳搭配:有架构设计经验
最佳搭配:有分布式开发经验
最佳搭配:有分布式开发经验
在编写本书的过程中,得到了尚硅谷机构和张龙老师的大力帮助,在此表示衷心的感谢。
感谢在本书策划和编写过程中提供指导的岳福丽编辑、左琨老师、孔长征老师,他们给了我很多创作灵感。
最后也要感谢我的家人,本书是在我家宝宝出生后的第一年编写的,是父母和妻子帮我全心全意地照顾宝宝,我才可能专心地编写本书。
由于笔者能力有限,书中难免会有一些疏漏之处,还望读者朋友能够批评指正。本书附赠的范例文件和拓展资料,请扫描左下方二维码,关注“博雅读书社”微信公众号,根据提示获取。如果您对本书中介绍的技术有任何的意见或建议,都欢迎扫下方的二维码,在我的公众号中留言,也可以加我个人微信(157468995)进行交流。