第一次参加iteye的图示试读活动,由于本人水平有限,如有不当之处,还望各位看官多多指教。
Netty简介:
我们来看看netty的简介,以下出自百度百科:
也就是说,Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程
“快速”和“简单”并不意味着会让你的最终应用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。
http://hae.iteye.com/blog/2114581
下图是netty的官网上的框架组件图:
NIO是NEW IO的简称,学习java的都应该知道java中是有自己的NIO类库实现的,NIO从jdk1.4就被引入了,可以说NIO不是新知识了。虽然Java中已经有自己的NIO类库,至于Java 的NIO 编程为什么没有流行起来的原因,在书中《Netty权威指南》的作者给出了我们答案:
步I/O 能力,所以对JDK 的NIO 并不关心;
2. 移动互联网尚未兴起,基于Java 的大规模分布式系统极少,很多中小型应用服务对
于异步I/O 的诉求不是很强烈;
3. 高性能、高可靠性领域,例如银行、证券、电信等依然以C++为主导,Java 充当打杂
的角色,NIO 暂时没有用武之地;
4. 当时主流的J2EE 服务器,几乎全部基于同步阻塞I/O 构建,例如Servlet、Tomcat 等,
由于它们应用广泛,如果这些容器不支持NIO,用户很难具备独立构建异步协议栈的能力;
5. 异步NIO 编程门槛比较高,开发和维护一款基于NIO 的协议栈对很多中小型公司来
说像是一场噩梦;
6. 业界NIO 框架不成熟,很难商用;
7. 国内研发界对NIO 的陌生和认识不足,没有充分重视。
http://hae.iteye.com/blog/2114581
基于上述几种原因,基于Java的 NIO 编程的推广和发展长期滞后。值得欣慰的是,随着大规模分布式系统、大数据和流式计算框架的兴起,基于Java 来构建这些系统已经成为主流,NIO 编程和NIO 框架在此期间得到了大规模的商用。在互联网领域,阿里的分布式服务框架Dubbo、RocketMQ,大数据的基础序列化和通信框架Avro,以及很多开源的软件都已经开始使用Netty 来构建高性能、分布式通信能力,Netty 社区的活跃度也名列前茅。根据目前的信息,Netty 已经在如下几个领域得到了大规模的商业应用。
1. 互联网领域;
2. 电信领域;
3. 大数据领域;
4. 银行、证券等金融领域;
5. 游戏行业;
6. 电力等企业市场。
-------------------------------割 ------ 割------------------------------------
试读目录:
本次《Netty权威指南》的试读目录是10.3-10.4,书页不多,内容充实,读起来还是比较轻松的。
在试读章节中作者向我们解释了为什么要自己实现http协议栈功能:
在网络安全日益严峻的今天,重量级的web容器由于功能繁杂,会存在很多安全漏洞,电信的如tomcat,需要为web容器做很多安全加固工作去修复这些漏洞,但是你并没有使用到这些功能,这会带来开发和维护成本的增加,在这种场景下,一个更加轻量级的http协议栈是个更好的选择。
作者通过介绍http协议栈的优缺点,引导读者深入浅出循环渐进的学习,为接下来的开发实战做了很好的铺垫,在接下来的开发实战中我们会学习使用netty实现自己的http协议栈。
http://hae.iteye.com/blog/2114581
开发实战:
书中作者通过一个实例程序,向我们模拟了一个简单的用户订购系统。
作者通过对以上订购流程图深入的分析,让读者了解到哪些能力是Netty支持的(如步骤2,netty自带的http协议栈,可以支持http链路的建立和请求消息的发送,直接重用netty的能力即可),哪些需要扩展开发实现(如netty无法对xml格式和pojo对象的相互编解码),并给出了更详细的设计思路(如 使用高效的XML绑定框架JIBX来灵活的实现POJO-XML的互相转换)
总结: http://hae.iteye.com/blog/2114581
作者通过模拟一个实际工作中会使用到的完整的软件开发流程(开发场景介绍,协议栈的设计,到框架的开发测试)呈现给了读者一个完整的http+xml协议栈的功能实现,其中涉及的很多细节和方法值得我们借鉴和学习。
很荣幸可以拜读到国内Netty资深一线专家的作品,作者向我们展示了netty的原理和架构,是作者多年的实战经验总结和浓缩,值得我们深入学习。