[Netty] IO通信模型

1. BIO通信模型

BIO通信模型通常由一个独立的Acceptor线程负责监听客户端的链接,它接收到客户端的链接请求后为每个客户端创建一个信息的线程进行链路处理,处理完成之后,通过输出流返回应答给客户端,线程销户。典型(一请求一应答通信模型)
[Netty] IO通信模型
- 缺点:该模型缺乏弹性伸缩能力,当客户啊短并发访问量增加后,服务端的线程个数和客户端并发访问数呈1:1的正比关系。

2. 伪异步I/O模型

伪异步I/O模型:为采用线程池和任务队列可以实现一种伪异步的I/O通信框架,当有新的客户端接入时,将客户端的Socket封装成一个Task(该任务实现java.lang.Runnable接口)投递到后端的线程池中进行处理,JDK的线程池维护一个消息队列和N个活跃线程,对消息队列中的任务进行处理,因此,它的资源占用是可控的,无论多少个客户端并发访问,都不会导致资源的耗尽和宕机。
[Netty] IO通信模型
- 缺点:伪异步I/O通信框架采用了线程池实现,因此避免了为每个请求都创建了一个独立线程造成的线程资源耗尽问题。但由于它底层的通信依然采用同步阻塞模型,无法从根本上解决问题。

【未完待续…】

如有错误之处,还请诸位批评指正。