Netty学习:搭建一个简单的Netty服务(JAVA NIO 类库的异步通信框架)
来源:互联网 发布:wordcount java实现 编辑:程序博客网 时间:2024/05/16 11:16
Netty介绍:
是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。
换句话说,Netty是一个NIO框架,使用它可以简单快速地开发网络应用程序,比如客户端和服务端的协议。
Netty大大简化了网络程序的开发过程比如TCP和UDP的 Socket的开发。
Netty 已逐渐成为 Java NIO 编程的首选框架。
项目官方地址:http://netty.io/index.html
Netty 优点:
- API 使用简单,开发门槛低;
- 功能强大,预置了多种编解码功能,支持多种主流协议;
- 定制能力强,可以通过 ChannelHandler 对通信框架进行灵活的扩展;
- 性能高,通过与其它业界主流的 NIO 框架对比,Netty 的综合性能最优;
- 社区活跃,版本迭代周期短,发现的 BUG 可以被及时修复,同时,更多的新功能会被加入;
- 经历了大规模的商业应用考验,质量得到验证。在互联网、大数据、网络游戏、企业应用、电信软件等众多行业得到成功商用,证明了它完全满足不同行业的商用标准。
Netty底层,使用Rector模式进行通信;
Netty线程开发最佳实践
- 时间可控的简单业务直接在IO线程上处理
- .复杂和时间不可控业务建议投递到后端业务线程池统一处理
过多的业务ChannelHandler会带来开发效率和可维护性问题,不要把Netty当作业务容器,对于大多数复杂的业务产品,仍然需要集成或者开发自己的业务容器,做好和Netty的架构分层。
- 业务线程避免直接操作ChannelHandler
总结
尽管Netty的线程模型并不复杂,但是如何合理利用Netty开发出高性能、高并发的业务产品,仍然是个有挑战的工作。只有充分理解了Netty的线程模型和设计原理,才能开发出高质量的产品。
Netty学习推荐书籍
目前市面上介绍netty的文章很多,如果读者希望系统性的学习Netty,推荐两本书:1) 《Netty in Action》,建议阅读英文原版。
2) 《Netty权威指南》,建议通过理论联系实际方式学习。
阅读全文
0 0
- Netty学习:搭建一个简单的Netty服务(JAVA NIO 类库的异步通信框架)
- Netty学习:搭建一个简单的Netty服务(JAVA NIO 类库的异步通信框架)
- Netty学习:搭建一个简单的Netty服务
- Netty学习:搭建一个简单的Netty服务
- Java NIO通信框架: Netty
- netty框架的NIO类库
- Netty:高性能、高可用的NIO通信框架
- java nio框架Netty
- Netty构建一个简单的http服务
- Java NIO框架Netty简单使用
- netty入门学习(2)-一个简单的netty实例
- Netty和Jetty的Java NIO 网络框架模型分析
- Netty:JBOSS的 JAVA NIO开发开源框架
- Netty学习笔记<2>--简单的NIO例子
- Java异步NIO框架Netty实现高性能高并发
- Java异步NIO框架Netty实现高性能高并发
- 开源NIO框架Netty的使用
- 一个参考Java开源框架Netty-ChannelBuffer类的简单实现
- 物联网操作系统 zephyr 相关资源
- 低功耗
- Linux: fd_set用法
- c# linq相关
- 数据类型优化
- Netty学习:搭建一个简单的Netty服务(JAVA NIO 类库的异步通信框架)
- php中比rbac更好的权限认证的方式auth认证类
- DATE_FORMAT(public_time,'%Y-%m-%d %H:%i:%S') + xml中 > <
- ImportError:DLL load failed:%1 不是有效的Win32应用程序
- Mac下Tesseract-OCR文字识别新手使用入门
- 今天发现word2003在打开表格文档时有的会显示不正常
- Use ant checkout sourcecode from CVS/SVN
- C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebugging .iTrace文件文件很大
- SpringMVC中JSP取不到ModelAndView的数据原因