JAVA-每日一面 2022-01-11

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

你可能感兴趣的:(JAVA-每日一面 2022-01-11)