Netty
流子
我这个人很懒,所以没有简介
展开
-
Netty API使用总结
Q1:服务器主动关闭连接后,客户端没有监听到socket关闭的事件。想象中,调用org.jboss.netty.channel.Channel.close();-->GateServerHandler.closeRequested-->channelDisconnected-->channelClosed-->client实际上,调用org.jboss.netty.channel.Chan原创 2012-08-13 20:25:52 · 18888 阅读 · 1 评论 -
如何让Embed Tomcat和Netty支持HTTPS
背景:根据苹果 APPSTORE 于 2017年1月1日起 启用ATS 协议的要求(即客户端和服务器的HTTP 请求 需要启用SSL连接)需要尽快将我们 服务端的HTTP 转换成HTTPS,详见【SSL证书】应对IOS安全策略升级,你准备好了吗?版本要求:JDK:1.8Embed Tomcat 8.0.33 Netty 4.0.33申请证书:目前是在阿里云上申原创 2016-12-16 11:49:41 · 2312 阅读 · 0 评论 -
在Netty底层监控消息发送到Socket的时间
1、调用writeAndFlush方法之后获取ChannelFuture;2、新增消息发送ChannelFutureListener,监听消息发送结果,如果消息写入网络Socket成功,则Netty会回调ChannelFutureListener的operationComplete方法;3、在消息发送ChannelFutureListener的operationComplete方法中进行性原创 2015-08-30 22:57:51 · 8366 阅读 · 5 评论 -
高并发下Netty4底层bug导致直接内存溢出分析
事故记录:10点游戏开服,迅速冲破2300+单区同时在线18点15分,运营反应玩家进不了,准备吃饭的人被抓回来排查故障发现,由于直接内存被占满,一直在Full GC ,并且回收不掉,所以完全不处理玩家请求,通知运维重启服务器,临时解决。2.考虑了下是不是把RPC连接数量改成了8条,超时改长了了导致,试着把数量减少,超时改成2个小时,发现直接内存随着时间推移还在增加。3.把...原创 2014-12-31 18:31:02 · 27574 阅读 · 6 评论 -
【Netty官方文档翻译】引用计数对象(reference counted objects)
原文出处:http://netty.io/wiki/reference-counted-objects.html原文地址可能有变,且内容可能发生变化。如果转载请注明出处,谢谢合作^_^。 自从Netty 4开始,对象的生命周期由它们的引用计数(reference counts)管理,而不是由垃圾收集器(garbage collector)管理了。ByteBuf是最值转载 2015-01-17 20:00:48 · 6046 阅读 · 0 评论 -
基于echo例子的netty4通信总结
在netty4源码分析系列文章中分别详细介绍了echo例子中涉及到网络通讯的每一个环节,本文对echo例子中服务端和客户端依次发生的步骤做个总结: 服务端依次发生的步骤建立服务端监听套接字ServerSocketChannel,以及对应的管道pipeline;启动boss线程,将ServerSocketChannel注册到boss线程持有的selector中,并将注册返回的sele转载 2015-01-30 22:14:23 · 3470 阅读 · 0 评论 -
Netty4 使用总结
Netty4的beta3加了AIO了,但是到beta9又被去了,作者的意思是测试下来AIO性能不如NIO,所以没必要用。我认为也没必要,在linux上NIO的实现本身就是epoll,使用jdk的AIO没有意义,在windows上jdk的AIO实现是IOCP,这种情况下使用AIO是比poll的性能高的,但是netty的服务器一般是在linux上,所以抛弃windows没啥大不了,windows最多做原创 2014-07-09 21:07:03 · 9230 阅读 · 0 评论 -
SO_RCVBUF和SO_SNDBUF默认值
内核:cat /proc/versionLinux version 2.6.32-431.23.3.el6.centos.plus.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Wed Jul 30 00:12:13 UTC 2原创 2015-01-27 16:40:53 · 15975 阅读 · 0 评论 -
解读io.netty.util.Recycler
netty使用基于thread-local的轻量级对象池Recycler对ChannelOutboundBuffer进行回收。当ChannelOutboundBuffer第一次被实例化且使用完毕后,会回收到Recycler中(见下面的recyle方法),下次需要用时,直接从Recycler中取(见下面的get方法),避免了再次实例化和垃圾回收的开销。Java代码 pu原创 2015-01-26 22:06:33 · 5995 阅读 · 0 评论 -
Netty4底层用对象池和不用对象池实践优化
随着JVM虚拟机和JIT即时编译技术的发展,对象的分配和回收是个非常轻量级的工作。但是对于缓冲区Buffer,情况却稍有不同,特别是对于堆外直接内存的分配和回收,是一件耗时的操作。为了尽量重用缓冲区,Netty提供了基于内存池的缓冲区重用机制。性能测试表明,采用内存池的ByteBuf相比于朝生夕灭的ByteBuf,性能高23倍左右(性能数据与使用场景强相关)。在4.x版本中,UnpooledB原创 2014-09-23 18:20:19 · 18322 阅读 · 10 评论 -
netty的异常分析 IllegalReferenceCountException refCnt: 0, decrement: 1
在websocket关闭时经常会抛出如下异常: IllegalReferenceCountException refCnt: 0, decrement: 1原创 2017-11-22 12:51:53 · 26365 阅读 · 6 评论