摘要:一,简介 空谈误国,要让一大堆抽象的DNS概念落地,还是需要了解DNS消息格式的,本文会尽量详细地介绍DNS消息格式的每一个字段。 也可以移步rfc1035了解。 二,概览 DNS消息主要由五部分组成,如下图所示: Header 消息头部 Question DNS请求 Answer 回答请求的资源记 阅读全文
Netty之Java堆外内存扫盲贴
2016-01-29 17:46 by Loull, 3375 阅读, 0 推荐, 收藏, 编辑
摘要:Java的堆外内存本来是高贵而神秘的东西,只在一些缓存方案的收费企业版里出现。但自从用了Netty,就变成了天天打交道的事情,毕竟堆外内存能减少IO时的内存复制,不需要堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中;而且也没了烦人的GC。 好在,Netty所用的堆外内存只是Java 阅读全文
Netty writeAndFlush() 流程与异步
2016-01-29 15:10 by Loull, 2118 阅读, 0 推荐, 收藏, 编辑
摘要:Netty writeAndFlush()方法分为两步, 先 write 再 flush @Override public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) { DefaultChannelHandlerC 阅读全文
Netty之有效规避内存泄漏
2016-01-29 11:31 by Loull, 14980 阅读, 0 推荐, 收藏, 编辑
摘要:有过痛苦的经历,特别能写出深刻的文章 —— 凯尔文. 肖 直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能,也告别了频繁的GC。但,要重新培养被Java的自动垃圾回收惯坏了的惰性。 Netty有一篇必读的文档 官方文档翻译:引用计数对象 ,在此基础上补充一些自己的理解 阅读全文
TCP状态变迁图
2016-01-04 20:01 by Loull, 671 阅读, 0 推荐, 收藏, 编辑
摘要:服务端,端口的状态变化 先在本机(IP地址为:192.168.1.10)配置FTP服务,然后在其它计算机(IP地址为:192.168.1.1)访问FTP服务,从TCPView看看端口的状态变化。 下面黑体字显示的是从TCPView中截取的部分。 1、LISTENING状态 FTP服务启动后首... 阅读全文
TCP/IP详解--发送ACK和RST的场景
2016-01-04 19:57 by Loull, 10161 阅读, 0 推荐, 收藏, 编辑
摘要:在有以下几种情景,TCP会把ack包发出去:1.收到1个包,启动200ms定时器,等到200ms的定时器到点了(第二个包没来),于是对这个包的确认ack被发送。这叫做“延迟发送”;2.收到1个包,启动200ms定时器,200ms定时器还没到,第二个数据包又来了(两个数据包一个ack);3.收到1个包... 阅读全文
TCP/IP详解--连接状态变迁图CLOSE_WAIT
2016-01-04 19:55 by Loull, 1195 阅读, 1 推荐, 收藏, 编辑
摘要:终止一个连接要经过4次握手。这由TCP的半关闭(half-close)造成的。既然一个TCP连接是全双工(即数据在两个方向上能同时传递,可理解为两个方向相反的独立通道),因此每个方向必须单独地进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向连接。当一端收到一个FI... 阅读全文
TCP中异常关闭链接的意义 异常关闭的情况
2015-12-25 22:15 by Loull, 4910 阅读, 0 推荐, 收藏, 编辑
摘要:终止一个连接的正常方式是发送FIN。在发送缓冲区中所有排队数据都已发送之后才发送FIN,正常情况下没有任何数据丢失。但我们有时也有可能发送一个RST报文段而不是FIN来中途关闭一个连接。这称为异常关闭。进程关闭socket的默认方式是正常关闭,如果需要异常关闭,利用SO_LINGER选项来控制。异常... 阅读全文
关于Thread.getContextClassLoader的使用场景问题
2015-12-22 15:39 by Loull, 2127 阅读, 0 推荐, 收藏, 编辑
摘要:Thread context class loader存在的目的主要是为了解决parent delegation机制下无法干净的解决的问题。假如有下述委派链:ClassLoader A -> System class loader -> Extension class loader -> Boots... 阅读全文
翻译:走出类加载器迷宫
2015-12-22 15:38 by Loull, 355 阅读, 1 推荐, 收藏, 编辑
摘要:这是前几天在看类加载器机制时搜到的一篇旧文,网上搜了搜相应的中文资料,感觉很多意思没有翻译出来,这两天我试着自己翻译了一下,供同道参考。英文文章地址:Find a way out of the ClassLoader maze走出类加载器迷宫(本人翻译,转载请注明出处)系统类加载器,当前类加载器,上... 阅读全文
linux 下查看系统资源和负载,以及性能监控
2015-12-18 02:08 by Loull, 289 阅读, 0 推荐, 收藏, 编辑
摘要:1,查看磁盘df -h2,查看内存大小freefree [-m|g]按MB,GB显示内存vmstat3,查看cpucat /proc/cpuinfo只看cpu数量grep "model name" /proc/cpuinfo | wc -l4,查看系统内存cat /proc/meminfo5,查看每... 阅读全文
再叙TIME_WAIT
2015-12-17 16:55 by Loull, 255 阅读, 0 推荐, 收藏, 编辑
摘要:之所以起这样一个题目是因为很久以前我曾经写过一篇介绍TIME_WAIT的文章,不过当时基本属于浅尝辄止,并没深入说明问题的来龙去脉,碰巧这段时间反复被别人问到相关的问题,让我觉得有必要全面总结一下,以备不时之需。讨论前大家可以拿手头的服务器摸摸底,记住「ss」比「netstat」快:shell> s... 阅读全文
Apache Commons 工具集
2015-12-14 21:25 by Loull, 274 阅读, 0 推荐, 收藏, 编辑
摘要:一、Commons BeanUtilshttp://jakarta.apache.org/commons/beanutils/index.html说明:针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。使用示例:功能有很多,网站上... 阅读全文
HashedWheelTimer
2015-12-08 16:35 by Loull, 882 阅读, 0 推荐, 收藏, 编辑
摘要:HashedWheelTimer 是根据Hashed and Hierarchical Timing Wheels: Data Structuresfor the Efficient Implementation of a Timer Facility这篇论文做出来的.HashedWheelTime... 阅读全文
Eclipse 调试 Java 程序的技巧
2015-11-30 19:39 by Loull, 393 阅读, 0 推荐, 收藏, 编辑
摘要:- 断点视图 : 条件断点如果你只对应用中的某部分感兴趣的话,这个功能非常有用。例如,如果你要在第13次循环的时候检查程序,或者在一个抽象父类中调试某些功能,而你只关注其中一个具体的实现。你可以在断点视图中设置条件,或者通过代码旁边的蓝色断点标记的右键菜单("Breakpoint Propertie... 阅读全文