第一次参加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的原理和架构,是作者多年的实战经验总结和浓缩,值得我们深入学习。
相关推荐
《Netty实战》这本书是针对Java网络编程框架Netty的一本深入实践教程,旨在帮助读者掌握Netty的核心特性和实际应用。Netty是一款高性能、异步事件驱动的网络应用程序框架,广泛应用于各种分布式系统、微服务架构以及...
Netty基础,用于学习Netty,参考黑马程序员的netty教程
《Netty实战》是针对Java开发者的一本技术指南,它深入介绍了如何利用Netty这个高性能、异步事件驱动的网络应用程序框架来构建高效且可扩展的网络应用。Netty不仅简化了网络编程的复杂性,还提供了丰富的特性和组件...
《Netty进阶之路-跟着案例学Netty》是由知名技术专家李林峰撰写的一本专为Java开发者深入理解Netty框架而准备的书籍。这本书旨在通过实例教学,帮助读者全面掌握Netty的核心特性和实战技巧,提升网络编程的能力。 ...
《跟闪电侠学Netty:Netty即时聊天实战与底层原理》是一本深入浅出的Netty技术指南,旨在帮助读者掌握Netty框架,并利用它实现即时聊天应用,同时理解其底层工作原理。Netty是Java领域的一款高性能、异步事件驱动的...
《深入浅出Netty》是一本专注于讲解Netty框架的编程指南,非常适合初学者入门。Netty是一个高性能、异步事件驱动的...无论你是Java开发者还是对网络编程感兴趣的程序员,这本书都将是你学习Netty不可或缺的参考资料。
ChannelHandlerAdapter 4.X版本和5.X版本的差别很大。ChannelRead是属于5.X版本的4.X版本没有这个方法,所以如果要用ChannelRead。可以更换5.X版本的Netty。
**Netty 深度解析** Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。它广泛应用于各种领域,如分布式系统、云计算、游戏服务器、大数据传输等。Netty 的设计...
- Netty 提供了 ChannelIdleHandler,可以在连接空闲一定时间后触发事件,以便执行心跳或关闭连接操作。 6. **安全性与性能优化** - Netty 支持 SSL/TLS 加密,可以为 WebSocket 连接提供安全保护。 - 通过配置...
这个“netty-netty-4.1.69.Final.tar.gz”文件是Netty的最新稳定版本,版本号为4.1.69.Final,它是一个压缩包文件,通常包含源码、编译后的类库、文档和其他相关资源。 Netty的核心特点包括: 1. **异步事件驱动**...
springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合 netty做心跳检测 springboot整合...
- **jar** 文件夹可能包含Netty的编译后的jar包,其中可能包括了Netty的核心库、示例代码以及其他依赖。这些jar包可以用于构建项目或者运行Netty示例。 压缩包中的 `netty-4.0.0.CR3` 文件可能是Netty库的完整源码...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在本文中,我们将深入探讨 Netty 如何与 4G DTU 设备结合,以及如何构建基于 Java 的物联网(IoT)解决方案。...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在深入探讨Netty与RocketMQ的关联之前,我们先来详细了解一下Netty的基本概念和核心特性。 Netty的核心设计...
Netty (netty-netty-5.0.0.Alpha2.tar.gz)是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程,例如 TCP 和 UDP 套接字服务器。 “快速和简单”并...
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.1版本,虽然现在的Netty已经发展到了5.x版本,但3.1版本的知识仍然具有历史参考价值,特别是对于那些初次接触或需要理解Netty基础概念的开发者来说。 1. **Netty...
Netty (netty-netty-3.10.6.Final.tar.gz)是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程,例如 TCP 和 UDP 套接字服务器。 “快速和简单”并...
ChannelFuture和ChannelHandlerContext是两个关键概念,前者用于异步操作,后者提供了上下文信息,用于在处理器之间传递消息。 Netty的缓冲区(Buffer)机制是其性能优化的关键之一。它提供了一种高效的方式来读写...
这样可以确保 Netty 服务器在 Spring 容器启动后自动运行。 4. **ChannelHandler 配置**: ChannelHandler 是 Netty 中处理网络事件的核心组件。在 Spring 集成中,可以创建一个 ChannelHandlerContext 的工厂类,该...