TCP的三次握手 TCP连接的建立时,双方需要经过三次握手,具体过程如下: (1)第一次握手:Client进入SYN_SENT状态,发送一个SYN帧来主动打开传输通道,该帧的SYN标志位被设置为1,同时会带上Client分配好的SN序列号,...
为什么生产环境是不建议使用Executors快捷创建线程池?
在生产环境中,使用Executors提供的快捷方法(如newFixedThreadPool、newCachedThreadPool等)创建线程池是不推荐的,主要原因如下: 推荐做法建议在生产环境中使用ThreadPoolExecutor类手...
半包问题的根因分析
粘包和半包的来源,得从操作系统底层说起。 大家都知道,底层网络是以二进制字节报文的形式来传输数据的,并且数据在进入传输阶段之前,还会发生CPU数据复制和DMA数据复制。无论在数据传输阶段,还是在数据复制阶段,都可能存在二进制字节数据的二次分...
Redisson分布式锁的watch dog自动续期机制
背景 据Redisson官网的介绍,Redisson是一个Java Redis客户端,与Spring 提供给我们的 RedisTemplate 工具没有本质的区别,可以把它看做是一个功能更强大的客户端(虽然官网上声称Redisson不只是一...
图数据库选型:Neo4j、Janus、HugeGraph
图数据库(Graph Database)是一种以图结构进行存储和查询的数据库。本文总结了图数据库选型的各类因素,并对比了3个主流开源图数据库:Neo4j、JanusGraph、HugeGraph。Neo4j是老牌的图数据库,JanusGra...