前 言
5G时代、物联网时代的大幕已经开启,新时代提升了对Java应用的高性能、高并发的要求,也抬高了Java工程师的技术台阶和面试门槛。
很多公司的面试题从某个侧面反映了生产场景的技术要求。之前只有BAT等大公司才有高并发技术相关的面试题,现在与Java项目相关的整个行业基本都涉及此类面试题。本书着重介绍Java NIO、Reactor模式、高性能通信框架Netty、ZooKeeper分布式锁、分布式ID、Redis分布式缓存、分布式IM方面的内容,以帮助读者快速掌握Java高并发的底层通信知识和分布式架构知识。
本书内容
本书是三卷本《Java高并发核心编程》的第1卷,旨在帮助读者掌握Netty、Redis、ZooKeeper、TCP、HTTP、分布式IM的原理,为读者打下Java高并发技术的知识基础。
第1~4章从操作系统的底层原理开始,浅显易懂地揭秘高并发IO的底层原理,并介绍如何让单体Java应用支持百万级的高并发,从传统的阻塞式OIO开始,细致地解析Reactor高性能模式,介绍高性能网络开发的基础知识。这些非常底层的原理知识和基础知识非常重要,是开发过程中解决Java实际问题必不可少的。
第5~8章重点讲解Netty。目前Netty是高性能通信框架皇冠上当之无愧的明珠,是支撑其他众多著名的高并发、分布式、大数据框架底层的框架。这几章从Reactor模式入手,以“四两拨千斤”的方式为读者介绍Netty的原理。同时,还将介绍如何通过Netty来解决网络编程中的重点难题,如Protobuf序列化问题、半包问题等。
第9~12章从TCP、HTTP入手,介绍客户端与服务端、服务端与服务端之间的高性能HTTP通信和WebSocket通信。这几章深入浅出地介绍TCP、HTTP、WebSocket三大常用的协议,以及如何基于Netty实现HTTP、WebSocket高性能通信。
第13章对ZooKeeper进行详细的介绍。除了全面地介绍Curator API之外,还从实战的角度出发介绍如何使用ZooKeeper设计分布式ID生成器,并详细介绍重要的SnowFlake算法。另外,还结合小故事以图文并茂的方式浅显易懂地介绍分布式锁的基本原理。
第14章从实战开发层面对Redis进行介绍,详细介绍Redis的5种数据类型、客户端操作指令、Jedis Java API。另外,还通过spring-data-redis来完成数据分布式缓存的实战案例,详尽地介绍Spring的缓存注解以及涉及的SpEL。
第15章通过CrazyIM项目为读者介绍一个亿级流量的高并发IM系统模型,这个高并发架构的系统模型不仅限于IM系统,通过简单的调整和适配就可以应用于当前主流的Java后台系统。
读者对象
? 对Java NIO、高性能IO、高并发编程感兴趣的大专院校学生。
? 需要学习Java高并发技术和高并发架构的初、中级Java工程师。
? 生产项目中需要用到Netty、Redis、ZooKeeper三大框架的架构师或者项目人员。
本书源代码下载
本书的源代码可以扫描以下二维码下载:
若下载有问题,请发送电子邮件至booksaga@126.com,邮件主题为“Java高并发核心编程 卷1(加强版)下载资源”。
勘误和支持
由于作者水平和能力有限,不妥之处在所难免,希望读者批评指正。
致 谢
感谢疯狂创客圈社群中的小伙伴们,他们中有很多非常有前途的技术狂人,他们对Java高并发技术的狂热喜爱让笔者惊叹不已。技术狂人们也获得了丰厚的回报,比如专科毕业的第76号、第453号技术狂人,已经顺利走向技术自由,成为P7级以上的技术专家,尤其是第76号卷王,两年之内薪资涨3倍,可喜可贺。
欢迎读者进入疯狂创客圈社群积极“砸”问题,虽然有的技术难题笔者不一定能给出最佳的解决方案,但坦诚、纯粹的技术交流能够相互启发,产生技术灵感,拓展技术视野,并最终提升技术水平。
尼 恩
2022年11月
