07 2018 档案
zk observer 节点
摘要:zk 集群中有3种节点:leader,follower,observer,其中 observer 节点没有投票权,即它不参与选举和写请求的投票。 比较 Follower 和 Observer 的代码: 可以看到,observer 不处理 leader 的 proposal 和 commit,但是它会
阅读全文
dubbo 异步回调
摘要:dubbo 异步回调的使用 业务接口: 回调服务类: xml 配置:(oninvoke 暂时没有配置好) 1. 异步回调的源头从 FutureFilter 发起,这是一个 consumer 端的 filter,它为 Future 设置回调函数。 2. 当 consumer 收到服务端的响应时,触发回
阅读全文
redis 缓存策略
摘要:redis 缓存策略配置项:maxmemory <bytes>maxmemory-policy noeviction触发时机:每次执行命令(processCommand)的时候会检测while 循环条件是 (mem_freed < mem_tofree),每次选择一个 bestkey 进行删除。1.
阅读全文
CountDownLatch 类
摘要:先来一段 jdk 的示例: CountDownLatch 的用法很简单,一个线程 await,其他的线程一直 countDown,当计数为 0 时,await 的线程就会运行。 不管是 CountDownLatch 还是 ReentrantLock,底层实现都是 AbstractQueuedSync
阅读全文
zookeeper 选举和同步
摘要:节点状态: 测试环境可以用 2 个节点组成集群。2 个节点的集群中,节点需要得到 2 票,才能当选为 leader。 假定 2 个节点的 id 分别为 1 和 2,以 FastLeaderElection 为例,描述选举过程:开始, 2 个节点均处于 LOOKING 状态,投票进行选举,2 个节点分
阅读全文
redis 管道原理
摘要:命令行使用管道(命令以换行符分隔): redis server 接收客户端的输入,调用栈如下: redis 中客户端的结构体: 分析管道命令的执行过程:按换行符 split 命令,分三次执行 PING 命令。 执行具体命令:
阅读全文
zookeeper 食谱
摘要:以示例形式说明 zk 食谱。假定有 4 个客户端,分别执行 create -s -e /lock/read xx 或 create -s -e /lock/write 获取锁。一、获取读锁的情况:/lock/write001/lock/write002/lock/read003/lock/read0
阅读全文