架构师特刊深入浅出Netty1.pdf

1 架构师特刊:深入浅出Netty 序言 最近几年,Netty社区的发展如火如荼,无论是大数据领域,还是微服 务架构,底层都需要一个高效的分布式通信框架作为基础组件。 Netty凭借优异的性能、灵活的可扩展新得到了广泛的应用。短短几年间, Netty已经成为众多Java高性能异步通信框架的首选。 作为Java语言领域最流行、表现最优异的NIO框架,Netty深受大家喜爱, 但是长期以来除了UserGuide之外,国内鲜有Netty相关的 系统性文章供广大NIO编程爱好者学习和参考。由于Netty源码的复杂 性和NIO编程本身的技术门槛限制,对于大多数初学者而言,通过 自己阅读和分析源码来深入掌握Netty的设计原理和实现细节是件非常 困难的事情。 为了方便大家系统性的学习Netty,2014年春节前后,我分享了博文 2 架构师特刊:深入浅出Netty 《Netty5.0架构剖析和源码解读》,短短几个月的时间,阅读和下载量超过 10万次。很多网友建议我能够继续按照专题的形式分析和解析Netty的架构 和源码,以及实际应用案例。于是从2014年5月份开始,我正式在InfoQ社 区分享Netty相关的专题文章,涉及到性能、可靠性、编解码、定制性以及 案例剖析等。这些文章深受大家的喜爱,几乎每期都是热点内容排名TOP5。 2年多的时间,在InfoQ分享的Netty专题文章超过10篇,通过其它方 式也陆续分享了一些Netty的实际案例,为了便于大家集中学习,很有必要 对这些已经发表的文章进行汇总和提取,形成一本迷你书,奉献给各位读者。 感谢主编郭蕾的帮助和支持,InfoQ上的Netty专题,都是由他亲自策划、 编辑和校审的。感谢InfoQ这个平台,为广大Netty爱好者提供了免费 学习和交流的技术乐土。 由于自身水平所限,文章难免存在遗漏或者错误,欢迎广大读者批评指正。 李林峰 3 架构师特刊:深入浅出Netty 目录 01 Netty 入门 02 Netty 服务端创建 03 Netty 客户端创建 04 Netty 消息的发送和接收 05 Netty 线程模型 06 Netty 架构剖析 07 Netty 案例集锦 4 架构师特刊:深入浅出Netty 1 Netty 入门 1.1 传统的BIO编程 网络编程的基本模型是Client/Server模型,也就是两个进程之间 进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客 户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连 接,如果连接建立成功,双方就可以通过网络套接字(Socket)进行通信。 在基于传统同步阻塞模型开发中,ServerSocket负责绑定IP地址, 启动监听端口;Socket负责发起连接操作。连接成功之后,双方通过输入和 输出流进行同步阻塞式通信。 1.1.1 BIO 通信模型图 首先,我们通过图2-1所示的通信模型图来熟悉下BIO的服务端通信模型: 采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端 的连接,它接收到客户端连接请求之后为每个客户端创建一个新的线程进行链路 处理,处理完成之后,通过输出流返回应答给客户端,线程销毁。这就是典型的 一请求一应答通信模型。 架构师特刊:深入浅出Netty 5 图1-1 同步阻塞I/O服务端通信模型(1客户端1线程

文档评论(0)

1亿VIP精品文档

相关文档