Netty 与三种 I/O 模式
经典的三种 I/O 模式
生活场景:
当我们去饭店吃饭时:
- 食堂排队打饭模式:排队在窗口,打好才走;
- 点单/等待被叫模式:等待被叫,好了自己去端;
- 包厢模式:点单后菜直接被端上桌。
Netty 对三种 I/O 模式的支持
为什么 Netty 仅支持 NIO 了?
为什么 Netty 有多种 NIO 实现?
通用的 NIO 实现(Common)在 Linux 下也是使用 epoll,为什么自己单独实现?
实现的更好!
- NIO 暴露了更多的可控参数,例如:
- JDK 的 NIO 默认实现是水平触发。
- Netty 是边缘触发(默认)和水平触发可切换。
- Netty 实现的垃圾回收更少、性能更好。
NIO 一定优于 BIO 吗?
- BIO 代码简单。
- 特定场景:连接数少,并发度低,BIO 性能不输 NIO。
来源:oschina
链接:https://my.oschina.net/u/4370811/blog/4258262