本篇首发于橙寂博客转载请加上此标示。
正式开始了netty的学习,netty是基于nio上的一个框架。期间翻阅了很多文档以及资料。先推荐给大家。
相关文档
-
Netty源码在线阅读:
Netty-4.1.x地址
Netty-4.0.x地址
Netty-3.x地址 -
Netty在线API文档:
Netty-4.1.x API文档
Netty-4.0.x API文档
Netty-3.x API文档
netty概述
因为nio编写起来很困难。如果不熟悉很容易就会出错。Netty 对 JDK 自带的 NIO 的 API 进行了封装。完美的解决的nio的问题。
- Netty的主要特点有:
- 1)设计优雅:适用于各种传输类型的统一 API 阻塞和非阻塞 Socket;基于灵活且可扩展的事件模型,可以清晰地分离关注点;高度可定制的线程模型 - 单线程,一个或多个线程池;真正的无连接数据报套接字支持(自 3.1 起)。
- 2)使用方便:详细记录的 Javadoc,用户指南和示例;没有其他依赖项,JDK 5(Netty 3.x)或 6(Netty 4.x)就足够了。
- 3)高性能、吞吐量更高:延迟更低;减少资源消耗;最小化不必要的内存复制。
- 4)安全:完整的 SSL/TLS 和 StartTLS 支持。5)社区活跃、不断更新:社区活跃,版本迭代周期短,发现的 Bug 可以被及时修复,同时,更多的新功能会被加入。
Netty 常见使用场景
- 1)互联网行业:在分布式系统中,各个节点之间需要远程服务调用,高性能的 RPC 框架必不可少,Netty 作为异步高性能的通信框架,往往作为基础通信组件被这些 RPC 框架使用。典型的应用有:阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通信,Dubbo 协议默认使用 Netty 作为基础通信组件,用于实现各进程节点之间的内部通信。
- 2)游戏行业:无论是手游服务端还是大型的网络游戏,Java 语言得到了越来越广泛的应用。Netty 作为高性能的基础通信组件,它本身提供了 TCP/UDP 和 HTTP 协议栈。非常方便定制和开发私有协议栈,账号登录服务器,地图服务器之间可以方便的通过 Netty 进行高性能的通信
- 3)大数据领域:经典的 Hadoop 的高性能通信和序列化组件 Avro 的 RPC 框架&#