Netty

Netty

Netty

Netty是一个网络通信框架。主要由事件模型、统一通信API、IO读写缓冲区、 Transport、协议支持五个部分组成。

 

 

 

Netty

 

Netty

Netty核心组成

事件模型

统一通信API

IO读写缓冲区

Transport

协议支持

 

 

 

Netty核心组成

Netty核心部分包括事件模型、统一通信API、IO读写缓冲区三部分。

事件模型

Netty被设计为事件驱动的,它的事件模型基于拦截器链模式。Netty的事件驱动是可扩展的。

 

Netty

Bootstrap

ClientBootstrap

ConnectionlessBootstrap

ServerBootstrap

IO读写缓冲区

Netty使用自己的一套读写缓冲API来表示网络字节序列,以代替标准Java NIO的ByteBuffer(java.nio.ByteBuffer),这比使用ByteBuffer更有优势,并提供了丰富的IO读写缓冲实现,支持零拷贝。Netty提供的所有读写缓冲实现都实现了ChannelBuffer(org.jboss.netty.buffer.ChannelBuffer)接口,它的设计从根本上解决了Java NIO ByteBuffer的问题,满足网络应用开发者的日常需求设计。 

 

 

 

 

IO读写缓冲区

可根据需要定制实现自己的IO读写缓冲

传输零拷贝

动态缓冲区,以支持动态容量扩展

不需要调用flip()

通常情况下比Java NIO ByteBuffer更快

 

Netty

ChannelBuffer

AbstractChannelBuffer

ByteBufferBackedChannelBuffer

CompositeChannelBuffer

DuplicatedChannelBuffer

DynamicChannelBuffer

HeapChannelBuffer

BigEndianHeapChannelBuffer

EmptyChannelBuffer

LittleEndianHeapChannelBuffer

ReadOnlyChannelBuffer

SlicedChannelBuffer

TruncatedChannelBuffer

ReplayingDecoderBuffer

WrappedChannelBuffer

Netty

ChannelHandler

 

 

Netty

ChannelPipelineFactory

Netty

ChannelPipeline

DefaultChannelPipeline

 

统一通信API

通信协议

IO

统一通信API

Netty提供了统一的通信API,使得Netty能够支持丰富的通信协议,如TCP、UDP、HTTP、进程间通信等。

通信协议

通信协议支持

TCP(socket)

UDP(datagram)

HTTP隧道

Pipe(In-VM, JVM进程内通信)

Websocket

HTTP

https(SSL, StartTLS, StartTLS区别于TLS)

RPC

通信协议支持

Netty在通信传输上提供了丰富的协议支持,如传输协议TCP、UDP、HTTP、HTTP隧道

、Pipe(In-VM, JVM进程内通信)。同时在这些传输协议上支持Websocket、HTTP、https(SSL, StartTLS, StartTLS区别于TLS)、Google ProtoBuf、压缩、大文件传输、RTSP以及传统的文件及二进制协议。

 

 

IO

Netty通过Channel(org.jboss.netty.channel.Channel)来提供统一的异步IO接口,它提供了点对点通信所需的所有操作的抽象。Netty通过一个通用的API提供了一系列必要的通信传输机制:

基于NIO的TCP/IP传输

基于OIO的TCP/IP传输

基于OIO的UDP/IP传输

本地传输

 

 

 

 

IO

 

 

IO

 

说明
AIO

 

异步 IO
BIO

 

阻塞式 IO(blocking I/O)
NIO

 

New I/O 非阻塞 IO(non- blocking I/O)
OIO

 

old blocking I/O

 

Netty

Channel

SocketChannel

NioSocketChannel

NioAcceptedSocketChannel

NioClientSocketChannel

OioSocketChannel

HttpTunnelingClientSocketChannel

ServerChannel

LocalChannel

DatagramChannel

Netty

ChannelFactory

ClientSocketChannelFactory

HttpTunnelingClientSocketChannelFactory

NioClientSocketChannelFactory

OioClientSocketChannelFactory

LocalClientChannelFactory

DefaultLocalClientChannelFactory

ServerChannelFactory

LocalServerChannelFactory

DefaultLocalServerChannelFactory

ServerSocketChannelFactory

NioServerSocketChannelFactory

OioServerSocketChannelFactory

DatagramChannelFactory

NioDatagramChannelFactory

OioDatagramChannelFactory

EmbeddedChannelFactory

 

http://netty.io/3.8/guide

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值