Netty-基础概念篇

一、什么是Netty

Netty 是一种可以轻松快速的开发协议服务器和客户端 网络应用程序的 NIO 框架,它大大简化了 TCP 或者 UDP 服务器的网络编程,但是你仍然可以访问和使用底层的 API,Netty 只是对其进行了高层的抽象。

Netty 的简易和快速开发并不意味着由它开发的程序将失去可维护性或者存 在性能问题。Netty 是被精心设计的,它的设计参考了许多 协议的实现,比如 FTPSMTPHTTP 和各种二进制和基 于文本的传统协议,因此 Netty 成功的实现了兼顾快速开 发,性能,稳定性,灵活性为一体,不需要为了考虑一方 面原因而妥协其他方面。

可以总结概括为五点:

(1)异步事件驱动框架,用于快速开发高性能服务端和客户端

(2)封装了JDK底层BIO和NIO模型,提供高度可用的API

(3)自带编码解码器解决拆包粘包问题,用户只用关心业务逻辑

(4)精心设计的Reactor线程模型支持高并发海量连接

(5)自带协议栈,无需用户关心

二、基概念

Channel 也就是通道,这个概念是在 JDK NIO 类库里面提供的一个概念,JDK 中其实现类有客户端套接字通道 java.nio.channels.SocketChannel 和服务端监听套接字 通道 java.nio.channels.ServerSocketChannelChannel 的出现是为了支持异步 IO 操作,JDK 里面的通道是 java.nio.channels.Channel。io.netty.channel.Channel 是 Netty 框架自己定义的一个通道接口,Netty 实现的客户端 NIO 套接字通道是 NioSocketChannel,提供的服务器端NIO 套接字通道是 NioServerSocketChannel

NioSocketChannel

端套接字通道,内部管理了一个 Java NIO 中的 java.nio.channels.SocketChannel 实例,用来创建 SocketChannel 实例和设置该实例的属性,并调用 Connect 方法向服 TCP 链接等
 
NioServerSocketChannel
 

器端听套接字通道,内部管理了一个 Java NIO 中的 java.nio.channels.ServerSocketChannel 实例,用来创建ServerSocketChannel 实例和设置该实例属性,并调用该实例的 bind 方法在指定端口听客端的接。

Channel socket 的关系

Netty Channel 有两种, 对应 端套接字通道 NioSocketChannel,内部管理 java.nio.channels.SocketChannel 套接字, 对应<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值