netty高性能
1、NIO异步⾮非阻塞通信
2、“零拷贝”
3、内存池ByteBuf
4、Netty提供了了多种内存管理策略,通过在启动辅助类中配置相关参数,可以实现差异化的定制。
5、高效的Reactor线程模型:Reactor单线程(多线程、主从)模型,指的是所有的IO操作都在同⼀一个NIO线程上⾯面完成
6、为了了尽可能提升性能,Netty采⽤用了了串行无锁化设计,在IO线程内部进行串行操作,避免多线程竞争导致的性能下降。表面上
看,串⾏化设计似乎CPU利利⽤用率不不⾼高,并发程度不不够。但是,通过调整NIO线程池的线程参数,可以同时启动多个串⾏化的线程并行运行,这种局部无锁化的串行线程设计相比⼀一个队列-多个⼯工作线程模型性能更更优。
7、高效的并发编程:Netty的高效并发编程主要体现在如下⼏几点:
- volatile的大量、正确使用;
- CAS和原⼦类的广泛使用;
- 线程安全容器的使用;
- 通过读写锁提升并发性能。
8、高效的序列化框架:
9、灵活的TCP参数配置能⼒力:合理理设置TCP参数在某些场景下对于性能的提升可以起到显著的效果,例如SO_RCVBUF和
SO_SNDBUF。如果设置不不当,对性能的影响是非常大的。