Spark Netty与Jetty (源码阅读十一)
spark呢,对Netty API又做了一层封装,那么Netty是什么呢~是个鬼。它基于NIO的服务端客户端框架,具体不再说了,下面开始。 创建了一个线程工厂,生成的线程都给定一个前缀名。 像一般的netty框架一样,创建Netty的EventLoopGroup: 在常用的netty框架中呢,会创建客户端辅助类,设置SocketChannel: Bootstrap b = new Bootstrap(); b.group(group).channel(NioSocketChannel.class) spark中呢 根据参数IOMode,返回正确的客户端SocketChannel: 返回正确的服务端socketChannel: 返回远端的Channel地址: 创建一个ByteBuf对本地线程缓存禁用的分配器。ByteBuf是由事件循环线程分配,所以线程本地缓存对于TransportClient是禁用的,ByteBuf释放是由Executor线程,不是事件循环线程完成。本地线程缓存经常会延迟ByteBuf的回收,导致巨大的内存消耗。 Spark这个禽兽,对Jetty也进行了封装,...