可以写笔记


原生NIO存在的问题

  • 1、NIO的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。

  • 2、需要具备其他的额外技能:要熟悉Java多线程编程,因为NIO编程涉及到Reactor模式,必须对多线程和网络编程非常熟悉,才能写出高质量的NIO程序。

  • 3、开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等等。

  • 4、JDK NIOd的BUG:例如臭名昭著的Epoll Bug,它会导致Selector空轮询(非常可怕的事情,导致死循环),最终导致CPU 100%。直到JDK1.7版本该问题依旧存在,没有被根本解决。

使用Netty可以更好的解决以上问题

Netty简介

Netty官网

Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients.

官网对Netty的介绍:是异步的,基于事件驱动的网络应用框架,以便于快速开发高性能的服务器端和客户端

Netty架构图


分类:Java
标签: Spring
文章目录