《Netty 4核心原理与手写RPC框架实战》首先从硬件层面深入分析网络通信原理,结合Java对网络I/O的API实现,将理论与实践串联起来,帮助大家透彻理解网络通信的起源,然后介绍Netty产生的背景并基于Netty手写Tomcat和RPC框架,帮助大家初步了解Netty的作用,接着分析Netty的核心原理和核心组件,基于Netty手写一个消息推送系统并进行性能调优,最后介绍设计模式在Netty中的应用和经典的面试题分析。
如果你想深入了解网络通信原理,
如果你还不知道Netty能做什么,
如果你想深入了解Netty的实现原理,
如果你看源码找不到入口,无从下手,
如果你想了解设计模式在Netty中的应用,
本书都能帮到你。
Netty 4首著/分布式技术基础Java经典框架必备/作者多年实战及授课经验与学员踩坑经验总结与升华,手写案例/核心技术/源码分析/实战演练/面试集锦一应俱全
序 言
在互联网分布式系统的推动下,Netty作为一个能够支撑高性能、高并发的底层网络通信框架而存在。Netty底层是基于Java NIO实现的,对NIO进行了非常多的优化,因此深受广大开发者尤其是一线大厂开发者的青睐。
作为一个Java开发者,如果没有研究过Netty,那么你对Java语言的使用和理解可能仅仅停留在表面,会点SSH,写几个MVC,访问数据库和缓存,这些只是初级Java开发者做的事。如果你要进阶,想了解Java服务器的高阶知识,Netty是一个必须要跨越的门槛。学会了Netty,你可以实现自己的HTTP服务器、FTP服务器、UDP服务器、RPC服务器、WebSocket服务器、Redis的Proxy服务器、MySQL的Proxy服务器等。
如果你想知道Nginx是怎么写出来的,
如果你想知道Tomcat和Jetty是如何实现的,
如果你也想实现一个简单的Redis服务器,
……
那么你应该好好研究一下Netty,它们高性能的原理都是类似的。
因为Netty 5.x已被官方弃用,本书内容基于Netty 4分析其核心原理,培养高级开发者自己“造轮子”的能力。本书不仅讲述理论知识,还围绕能够落地的实战场景,开创手写源码的学习方式,使读者学习源码更加高效。本书的主要特色是首次提供了基于Netty手写RPC框架、基于Netty手写消息推送系统等实战案例。
关于本书
适用对象 ?不知道Netty能做什么的人群
? 想深入了解Netty源码实现原理的人群
? 看源码找不到入口、无从下手的人群
? 想了解设计模式在Netty源码中如何应用的人群
CentOS版本 7.0
源码版本 Netty 4.1.6
IDE版本 IntelliJ IDEA 2017.1.4
JDK版本 JDK 1.8及以上
Gradle版本 Gradle 4.0及以上
Maven版本 3.5.0及以上
随书源码会在https://github.com/gupaoedu-tom/netty4-samples中持续更新。
关于我
为什么都叫我“文艺汤”?
我自幼爱好书法和美术,长了一双能书会画的手,而且手指又长又白,因此以前的艺名叫“玉手藝人”。中学期间,曾获市级书法竞赛一等奖,校园美术竞赛一等奖,校园征文比赛二等奖。担任过学生会宣传部长,负责校园黑板报、校园刊物的编辑、排版、设计。
2008年参加工作后,我做过家具建模、平面设计等工作,亲自设计了咕泡学院的Logo。做讲师之后,我给自己起了一个跟姓氏谐音的英文名字“Tom”,江湖人称“编程界写字写得最好的、书法界编程最牛的文艺汤”。
我的技术生涯
我的IT技术生涯应该算是从2009年开始的,在此之前做过UI设计,做过前端网页,到2009年才真正开始参与Java后台开发。在这里要感谢所有帮助我入门编程的同事和老师。2010年至2014年担任过项目组长、项目经理、架构师、技术总监,对很多的开源框架建立了自己的独特见解。我会习惯性地用形象思维来理解抽象世界。譬如:看到二进制数0和1,我会想到《周易》中的两仪——阴和阳;看到颜色值用RGB表示,我会想到美术理论中的太阳光折射三原色;下班回家看到炒菜流程,我会想到模板方法模式;坐公交车看到学生卡、老人卡、爱心卡,我会想到策略模式;等等。大家看到的这本书,很多地方都融入了这种形象思维。
为什么写书?
自2019年《Spring 5核心原理与30个类手写实战》出版以来,深受广大读者喜爱,有些学员将此书作为学习的参考教材。为继续满足大家对技术的追求,借此机会将本人多年对Netty的研究笔记整理成书奉献给各位“汤粉”。
在此,特别感谢责任编辑董英、李秀梅及电子社的团队成员的付出,尤其在疫情期间,即使是远程办公也同样坚守岗位审稿至深夜。
谭勇德(Tom)
2020年3月 于 长沙
请问源码在哪里?