`

Netty 读后感

阅读更多

 第一次参加iteye的图示试读活动,由于本人水平有限,如有不当之处,还望各位看官多多指教。

 

Netty简介:

我们来看看netty的简介,以下出自百度百科:

写道
Netty 是JBOSS提供的一个java开源框架,Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
也就是说,Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程
“快速”和“简单”并不意味着会让你的最终应用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。

http://hae.iteye.com/blog/2114581

下图是netty的官网上的框架组件图:


         

 NIONEW IO的简称,学习java的都应该知道java中是有自己的NIO类库实现的,NIOjdk1.4就被引入了,可以说NIO不是新知识了。虽然Java中已经有自己的NIO类库,至于Java NIO 编程为什么没有流行起来的原因,在书中Netty权威指南》作者给出了我们答案

写道
1. 大多数高性能服务器,被C 和C++语言盘踞,由于它们可以直接使用操作系统的异
步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 框架在此期间得到了大规模的商用。在互联网领域,阿里的分布式服务框架DubboRocketMQ,大数据的基础序列化和通信框架Avro,以及很多开源的软件都已经开始使用Netty 来构建高性能、分布式通信能力,Netty 社区的活跃度也名列前茅。根据目前的信息,Netty 已经在如下几个领域得到了大规模的商业应用。

1. 互联网领域;

2. 电信领域;

3. 大数据领域;

4. 银行、证券等金融领域;

5. 游戏行业;

6. 电力等企业市场。

 

-------------------------------割  ------  割------------------------------------

 试读目录:

   


本次《Netty权威指南》的试读目录是10.3-10.4,书页不多,内容充实,读起来还是比较轻松的。

 

在试读章节中作者向我们解释了为什么要自己实现http协议栈功能:

写道
在java领域,最常用的http协议栈就是基于http协议栈就是基于servlet规范的tomcat,jetty容器,但是,很多基于http的应用都是后天应用,http仅仅是承载数据交换的一个通道,是一个载体而不是web容器,因此,一般不需要类似于tomcat这样的重量型web容器。
在网络安全日益严峻的今天,重量级的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的原理和架构,是作者多年的实战经验总结和浓缩,值得我们深入学习。

  • 大小: 48.6 KB
  • 大小: 87.7 KB
  • 大小: 87.5 KB
分享到:
评论
2 楼 hae 2014-11-24  
Wuaner 写道
写的不错,感谢分享读后感给大家!

谢谢
1 楼 Wuaner 2014-11-24  
写的不错,感谢分享读后感给大家!

相关推荐

    Netty实战.epub_netty实战epub_netty实战epub_netty_

    《Netty实战》这本书是针对Java网络编程框架Netty的一本深入实践教程,旨在帮助读者掌握Netty的核心特性和实际应用。Netty是一款高性能、异步事件驱动的网络应用程序框架,广泛应用于各种分布式系统、微服务架构以及...

    Netty基础,用于学习Netty,参考黑马程序员的netty教程

    Netty基础,用于学习Netty,参考黑马程序员的netty教程

    Netty实战 电子版.pdf_java_netty_服务器_

    《Netty实战》是针对Java开发者的一本技术指南,它深入介绍了如何利用Netty这个高性能、异步事件驱动的网络应用程序框架来构建高效且可扩展的网络应用。Netty不仅简化了网络编程的复杂性,还提供了丰富的特性和组件...

    Netty进阶之路-跟着案例学Netty

    《Netty进阶之路-跟着案例学Netty》是由知名技术专家李林峰撰写的一本专为Java开发者深入理解Netty框架而准备的书籍。这本书旨在通过实例教学,帮助读者全面掌握Netty的核心特性和实战技巧,提升网络编程的能力。 ...

    跟闪电侠学Netty:Netty即时聊天实战与底层原理-book-netty.zip

    《跟闪电侠学Netty:Netty即时聊天实战与底层原理》是一本深入浅出的Netty技术指南,旨在帮助读者掌握Netty框架,并利用它实现即时聊天应用,同时理解其底层工作原理。Netty是Java领域的一款高性能、异步事件驱动的...

    深入浅出Netty_netty_

    《深入浅出Netty》是一本专注于讲解Netty框架的编程指南,非常适合初学者入门。Netty是一个高性能、异步事件驱动的...无论你是Java开发者还是对网络编程感兴趣的程序员,这本书都将是你学习Netty不可或缺的参考资料。

    netty4-netty5.rar

    ChannelHandlerAdapter 4.X版本和5.X版本的差别很大。ChannelRead是属于5.X版本的4.X版本没有这个方法,所以如果要用ChannelRead。可以更换5.X版本的Netty。

    Netty 教程 Netty权威指南

    **Netty 深度解析** Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。它广泛应用于各种领域,如分布式系统、云计算、游戏服务器、大数据传输等。Netty 的设计...

    整合netty实时通讯

    - Netty 提供了 ChannelIdleHandler,可以在连接空闲一定时间后触发事件,以便执行心跳或关闭连接操作。 6. **安全性与性能优化** - Netty 支持 SSL/TLS 加密,可以为 WebSocket 连接提供安全保护。 - 通过配置...

    netty-netty-4.1.69.Final.tar.gz

    这个“netty-netty-4.1.69.Final.tar.gz”文件是Netty的最新稳定版本,版本号为4.1.69.Final,它是一个压缩包文件,通常包含源码、编译后的类库、文档和其他相关资源。 Netty的核心特点包括: 1. **异步事件驱动**...

    netty4.0源码,netty例子,netty api文档

    - **jar** 文件夹可能包含Netty的编译后的jar包,其中可能包括了Netty的核心库、示例代码以及其他依赖。这些jar包可以用于构建项目或者运行Netty示例。 压缩包中的 `netty-4.0.0.CR3` 文件可能是Netty库的完整源码...

    netty+4G DTU

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在本文中,我们将深入探讨 Netty 如何与 4G DTU 设备结合,以及如何构建基于 Java 的物联网(IoT)解决方案。...

    netty-netty-4.1.19.Final.zip_netty_netty学习_rocketmq

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在深入探讨Netty与RocketMQ的关联之前,我们先来详细了解一下Netty的基本概念和核心特性。 Netty的核心设计...

    Netty (netty-netty-5.0.0.Alpha2.tar.gz)

    Netty (netty-netty-5.0.0.Alpha2.tar.gz)是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程,例如 TCP 和 UDP 套接字服务器。 “快速和简单”并...

    springboot整合 netty做心跳检测

    springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合...

    netty框架 jar包

    Netty是一个开源的Java框架,专门用于构建高性能、高可靠性的网络应用,如服务器和客户端。这个"Netty框架 jar包"很可能包含了Netty 4.1.6版本的库文件,使得开发者能够轻松地在自己的项目中集成Netty的功能。 ...

    netty官网学习手册中文版

    这个“netty官网学习手册中文版”针对的是Netty的3.1版本,虽然现在的Netty已经发展到了5.x版本,但3.1版本的知识仍然具有历史参考价值,特别是对于那些初次接触或需要理解Netty基础概念的开发者来说。 1. **Netty...

    netty-socketio-netty-socketio-2.0.6

    netty-socketio-netty-socketio-2.0.6 ,Socket.IO 是一个库,可以在客户端和服务器之间实现低延迟, 双向和基于事件的通信:netty-socketio-netty-socketio-2.0.6.tar.gznetty-socketio-netty-socketio-2.0.6.zip

    netty-netty-3.10.6.Final.tar.gz

    Netty (netty-netty-3.10.6.Final.tar.gz)是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程,例如 TCP 和 UDP 套接字服务器。 “快速和简单”并...

    深入浅出Netty_netty5.0_

    ChannelFuture和ChannelHandlerContext是两个关键概念,前者用于异步操作,后者提供了上下文信息,用于在处理器之间传递消息。 Netty的缓冲区(Buffer)机制是其性能优化的关键之一。它提供了一种高效的方式来读写...

Global site tag (gtag.js) - Google Analytics