摘要:
在客户端发送命令:stat /zhang watch 在zk server中产生如下图的调用栈: 我们详细分析addWatch代码: 在创建、删除、设置节点数据时,会触发watch: 阅读全文
摘要:
zk server处理命令涉及到3个类,2个线程:一个命令请求先后经过PrepRequestProcessor,SyncRequestProcessor,FinalRequestProcessor。 PrepRequestProcessor类对应线程ProcessThread,SyncRequest 阅读全文
摘要:
使用版本zookeeper-3.4.6.jar 从官网下载zookeeper-3.4.6.tar.gz,解压缩到 D:\tools 文件夹,目录结构如下图。 1. Eclipse新建java工程; 2. 将D:\tools\zookeeper-3.4.6\src\java\generated目录下的 阅读全文
摘要:
ClientCnxn是客户端的类:该类管理zk客户端的socket io,维持一个可用服务器的列表。 Packet封装了请求、响应以及回调等。 ClientCnxn类中有SendThread和EventThread两个线程,SendThread负责io(发送和接收),EventThread负责事件处 阅读全文
摘要:
dubbo的超时分为服务端超时 SERVER_TIMEOUT 和客户端超时 CLIENT_TIMEOUT。本文讨论服务端超时的情形: 超时:consumer发送调用请求后,等待服务端的响应,若超过timeout时间仍未收到响应,则抛异常。 dubbo consumer 超时重试的逻辑在 Failov 阅读全文
摘要:
linux的进程有一个信号屏蔽字,如果某个信号在信号屏蔽字中被置位,则当产生该信号时,内核并不会把该信号递送给进程, 这称为信号的未决。当该信号从信号屏蔽字中移除时,内核会把未决信号递送给进程,进程执行对应的信号处理函数。 在linux中,通过 kill 命令给进程发送信号: 如:kill -SIG 阅读全文
摘要:
1. insert ... select 2. 使用变量 3. update ... join 4. delete from 和 truncate 的区别 对于MySQL,truncate一张表,表中AUTO_INCREMENT的列序号会清零。 5. having 和 where 的用法一样,whe 阅读全文
摘要:
epoll相关的api: 网上搜集的epoll代码示例: 阅读全文
摘要:
poll相关的api: 网上搜到的代码示例: 使用nc命令作为客户端进行交互:nc localhost 9999 从这个例子中,能看出poll的缺点。 poll函数返回发生了事件的描述符个数,我们需要遍历所有的描述符,才能知道具体描述符哪些真实发生了事件。 阅读全文
摘要:
ShardedJedisPool xml配置: xml配置对应的构造方法: ShardedJedisPool使用示例: ShardedJedisPool.getResource 的调用栈: 代码分析: JedisShardInfo.createResource: 存取一个键时,根据键获取一个Jedi 阅读全文