新書推薦:
《
大地的勇士
》
售價:NT$
340.0
《
中华老学·第十一辑
》
售價:NT$
380.0
《
债务之网:瑞士民商法的发展历史(1800-1900)
》
售價:NT$
345.0
《
ARM嵌入式Linux系统开发详解(第3版)
》
售價:NT$
595.0
《
长寿时代:做自己人生的CFO
》
售價:NT$
310.0
《
早点知道会幸福的那些事
》
售價:NT$
295.0
《
知宋·宋代之货币
》
售價:NT$
340.0
《
爱的7种对话:建立持续一生的亲密关系 (加)苏·约翰逊
》
售價:NT$
345.0
|
編輯推薦: |
★ 《Spring 5核心原理与30个类手写实战》作者全新力作
★ 集作者多年实战及授课经验与学员踩坑经验总结之大成
★ 基于Netty 4,学习Dubbo、Spring Cloud等分布式技术基础必备
★ 全网独创手写源码学习法,让学习源码更高效
★ 提供基于Netty手写RPC框架、手写消息推送系统实战案例
★ 快速掌握Bootstrap、EventLoop、Pipeline、ByteBuf等核心技术
★ 深度剖析Netty的原理与特性,让学习Netty变得轻松易上手
★ 实用性强,是一本面向Netty应用者不可多得的实战类好书
★ 既可作为Netty应用实战指导书,又可作为日常学习工具书
让30W 学员受益的手写源码学习法开创者
影响100W 程序员的Java架构师成长路径制定人 全新力作
手写Spring畅销书作者
全网首发Netty 4版本的分布式通信技术必备图书
从网络通信硬件到Java IO核心原理
从实战到面试一应俱全
一本书读懂Netty 4分布式通信技术!
|
內容簡介: |
《Netty 4核心原理与手写RPC框架实战》首先从硬件层面深入分析网络通信原理,结合Java对网络IO的API实现,将理论与实践串联起来,帮助大家透彻理解网络通信的起源,然后介绍Netty产生的背景并基于Netty手写Tomcat和RPC框架,帮助大家初步了解Netty的作用,接着分析Netty的核心原理和核心组件,基于Netty手写一个消息推送系统并进行性能调优,*后介绍设计模式在Netty中的应用和经典的面试题分析。
如果你想深入了解网络通信原理,
如果你还不知道Netty能做什么,
如果你想深入了解Netty的实现原理,
如果你看源码找不到入口,无从下手,
如果你想了解设计模式在Netty中的应用,《Netty 4核心原理与手写RPC框架实战》首先从硬件层面深入分析网络通信原理,结合Java对网络IO的API实现,将理论与实践串联起来,帮助大家透彻理解网络通信的起源,然后介绍Netty产生的背景并基于Netty手写Tomcat和RPC框架,帮助大家初步了解Netty的作用,接着分析Netty的核心原理和核心组件,基于Netty手写一个消息推送系统并进行性能调优,*后介绍设计模式在Netty中的应用和经典的面试题分析。
如果你想深入了解网络通信原理,
如果你还不知道Netty能做什么,
如果你想深入了解Netty的实现原理,
如果你看源码找不到入口,无从下手,
如果你想了解设计模式在Netty中的应用,
本书都能帮到你。
|
關於作者: |
谭勇德(Tom)
10余年Java开发经验。
咕泡学院联合创始人。
著有畅销书《Spring 5核心原理与30个类手写实战》。
在大型IT公司担任过CTO、系统架构师。
精通Java、JS、CSS、AS、PHP等;负责过多个大型分布式系统的微服务架构的技术改造;多年来对Netty框架有深入研究及独特见解;开发过多套企业内部UI框架和ORM框架;热衷于分享经验,共同进步。
格言:不只做一个技术者,更要做一个思考者。
|
目錄:
|
目录
第 1 篇 IO 基础篇
第 1 章 网络通信原理................................................................................................................... 2
1.1 网络基础架构 .......................................................................................................................... 2
1.1.1 CS 架构 ............................................................................................................................... 2
1.1.2 CS 信息传输流程 ................................................................................................................. 2
1.2 TCPIP 五层模型详解 ............................................................................................................. 3
1.2.1 物理层 .................................................................................................................................... 3
1.2.2 数据链路层 .................................................................................................................................. 4
1.2.3 网络层 ........................................................................................................................................ 5
1.2.4 传输层 ................................................................................................................................ 10
1.2.5 应用层 ....................................................................................................................................... 15
1.2.6 小结 ............................................................................................................................................ 16
1.3 网络通信实现原理 ................................................................................................................ 18
1.4 向浏览器输入 URL 后发生了什么 .................................................................................... 19
1.5 网络通信之魂Socket ...............................................................................................21
第 2 章 Java IO 演进之路 ........................................................................................................23
2.1 IO 的问世 ............................................................................................................................. 23
2.1.1 什么是 IO ................................................................................................................................. 23
2.1.2 IO 交互流程 .............................................................................................................................. 24
2.2 五种 IO 通信模型 ...................................................................................................................... 25
2.2.1 阻塞 IO 模型 .......................................................................................................................... 25
2.2.2 非阻塞 IO 模型 ....................................................................................................................... 26
2.2.3 多路复用 IO 模型 .................................................................................................................... 27
2.2.4 信号驱动 IO 模型 ................................................................................................................... 28
2.2.5 异步 IO 模型 ............................................................................................................................. 28
2.2.6 易混淆的概念澄清 ..................................................................................................................... 29
2.2.7 各 IO 模型的对比与总结 ....................................................................................................... 32
2.3 从 BIO 到 NIO 的演进 ........................................................................................................ 33
2.3.1 面向流与面向缓冲 ..................................................................................................................... 33
2.3.2 阻塞与非阻塞 ............................................................................................................................. 33
2.3.3 选择器在 IO 中的应用 ...............................................
|
內容試閱:
|
序 言
在互联网分布式系统的推动下,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手写消息推送系统等实战案例。
关于本书
适用对象
l不知道Netty能做什么的人群
l想深入了解Netty源码实现原理的人群
l看源码找不到入口、无从下手的人群
l想了解设计模式在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.comgupaoedu-tomnetty4-samples中持续更新。
关于我
为什么都叫我文艺汤?
我自幼爱好书法和美术,长了一双能书会画的手,而且手指又长又白,因此以前的艺名叫玉手藝人。中学期间,曾获市级书法竞赛一等奖,校园美术竞赛一等奖,校园征文比赛二等奖。担任过学生会宣传部长,负责校园黑板报、校园刊物的编辑、排版、设计。
2008年参加工作后,我做过家具建模、平面设计等工作,亲自设计了咕泡学院的Logo。做讲师之后,我给自己起了一个跟姓氏谐音的英文名字Tom,江湖人称编程界写字写得最好的、书法界编程最牛的文艺汤。
我的技术生涯
我的IT技术生涯应该算是从2009年开始的,在此之前做过UI设计,做过前端网页,到2009年才真正开始参与Java后台开发。在这里要感谢所有帮助我入门编程的同事和老师。2010年至2014年担任过项目组长、项目经理、架构师、技术总监,对很多的开源框架建立了自己的独特见解。我会习惯性地用形象思维来理解抽象世界。譬如:看到二进制数0和1,我会想到《周易》中的两仪阴和阳;看到颜色值用RGB表示,我会想到美术理论中的太阳光折射三原色;下班回家看到炒菜流程,我会想到模板方法模式;坐公交车看到学生卡、老人卡、爱心卡,我会想到策略模式;等等。大家看到的这本书,很多地方都融入了这种形象思维。
为什么写书?
自2019年《Spring 5核心原理与30个类手写实战》出版以来,深受广大读者喜爱,有些学员将此书作为学习的参考教材。为继续满足大家对技术的追求,借此机会将本人多年对Netty的研究笔记整理成书奉献给各位汤粉。
在此,特别感谢责任编辑董英、李秀梅及电子社的团队成员的付出,尤其在疫情期间,即使是远程办公也同样坚守岗位审稿至深夜。
谭勇德(Tom)
2020年3月 于 长沙
|
|