一、为什么要学好Netty框架呢?
1.1、在我们的日常的开发中,运用到很多的框架和应用开发
①、分布式事务框架seata,分布式的注册中心nacos,限流组件Sentinel,分布式缓存客户端组件redission等等。
②、应用开发的软件比如分布式IM,网关gateway的开发。
这些的组件当我们稍微往里面走一走,就会看到netty代码的影子,因为这些组件都是在IO高性能框架的netty基础之上做了业务开发,平常的解决问题当看源码的时候也会有相应的影子。
③、在大数据的领域当中,IO高性能的框架也会用netty。
1.2、当我们去面试高级开发和java架构的时候,有很多的时候是需要掌握上面的核心框架的源码的,而恰恰上面的框架中核心的源码都与netty有关。
1.3、在Nety框架中为了追求极致的高性能,里面的代码大量运用了位运算,内存池,对象池等的高性能设计模式,高性能的架构模式。
比如在内存池中使用了buddy伙伴算法:解决了内存的外部碎片;slab算法:解决了内存的内部算法。这两种算法在jvm和操作系统中都有应用到。
对象池中:应用了两级无锁结构:线程级别的无锁架构和队列级别的无锁架构。
这么优秀的架构模式当然是可以运用到我们的生产环境中的。