![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
文章平均质量分 94
青0721松
在山西从事互联网相关的工作,小伙伴计划回来山西的可以联系。
展开
-
Netty使用案例 -优雅退出原理和源码分析
Netty优雅退出涉及线程组,NIO线程,Channel和定时任务等,底层实现细节比较复杂。看看源码是怎么实现的。NioEventLoopGroupNioEventLoopGroup实际上是NioEventLoop线程组,它的优雅退出比较简单,可直接遍历EventLoop数组,循环调用它们的shutdownGracefully方法,源码public abstract class Multit...原创 2018-12-27 15:25:32 · 345 阅读 · 0 评论 -
Netty使用案例 -服务启动退出
了解守护线程守护线程是运行在程序后台的线程。通常守护线程是由JVM创建,用于辅助用户活着JVM工作,GC就是一个典型的守护线程。用户也可以手动的创建守护线程。我们一般程序中使用的主线程不是守护线程,Daemon线程在java里边的定义是,如果虚拟机中只有Daemon线程运行,则虚拟机退出。看以下例子:public class JvmServer { public static voi...原创 2018-12-27 10:25:34 · 6927 阅读 · 7 评论 -
Netty使用案例 -客户端连接池使用
将Netty强大的NIO当做BIO使用设置启动的poolSize为150 先创建150个线程EventLoopGroup,这里我设置JVM的参数为//由于用的是jdk8,所以好多数据会在元空间存放-XX:MetaspaceSize=8m -XX:MaxMetaspaceSize=60m -Xmx50m//具体代码如下public class InitNettyPool { pu...原创 2019-01-08 20:28:40 · 4262 阅读 · 7 评论 -
Netty使用案例 -发送队列积压导致内存泄漏(一)
Netty发送队列积压案例环境配置//vm参数设置-Xmx1000m -XX:+PrintGC -XX:+PrintGCDetails 对业务性能压测,N个客户端并发访问服务端,客户端基于Netty框架做网络通信,压测一段时间之后,响应时间越来越长,失败率增加,监控客户端内存使用情况,发现使用的内存一直飙升,吞吐量慢慢降为0,最后发生OOM异常,CPU占用居高不下,GC占满CPU。高...原创 2019-01-24 20:25:48 · 6499 阅读 · 3 评论 -
Netty使用案例 -堆外内存泄漏跟踪
内存池ByteBuf泄漏没有引起堆内存溢出服务端代码入下public class RouterServerHandler extends ChannelInboundHandlerAdapter { static ExecutorService executorService = Executors.newSingleThreadExecutor(); PooledByteBu...原创 2019-01-15 17:11:40 · 2981 阅读 · 0 评论 -
Netty使用案例 -HTTP协议栈中使用ByteBuf
使用Netty开发Restfull应用Http服务端代码public class HttpServer { public static void main(String[] args) { HttpServer httpServer = new HttpServer(); int port = Integer.valueOf(args[0]); ...原创 2019-01-22 17:12:52 · 1507 阅读 · 0 评论