除非你觉得你的时间不是很宝贵,否则不要看这篇流水账式的博文,这只是篇个人的工作的学习一个总结而已,没有包含任何的技术细节
阅读全文 »

0. 背景

公司从 naocs 的注册中心到 zookeeper 注册中心转变,自己也好久没看过 zookeeper 相关了,上次应该看的是《从Paxos到Zookeeper》一书,这次正好趁年假把另一本经典的书《Zookeeper:分布式过程协同技术详解》看下。

1. 总览

一共十章,八章偏入门实战,敲代码和实战理论为主,在 github 上也有相应的源码。第九章是原理讲解,最后一章是配置详解。
前八章应该属于入门实战,通过介绍四大节点类型和监听,来实现一个简单的分布式任务协调中心。
第九章通过对源码讲解,对关键的“顺序一致性”、“事务”做代码上的了解。
最后一章应该属于参数调优,适合运维和部署者,属于优化点。

阅读全文 »

除非你觉得你的时间不是很宝贵,否则不要看这篇流水账式的博文,这只是篇个人的工作的学习一个总结而已,没有包含任何的技术细节
阅读全文 »

0. 背景

一直在用 RPC,但是对非常重要的序列化原理一直模糊不懂,尤其是其中的 serialVersionUID 也模糊不清,虽然 Dubbo 已经帮我们使用了经过优化过的 hession2,但是还是想一探究竟,为什么原生的 JDK 序列化就不行呢?原生 JDK 序列化到底是怎么样的。

主要参考《分布式Java应用》的4.3序列化/反序列化章节

阅读全文 »

除非你觉得你的时间不是很宝贵,否则不要看这篇流水账式的博文,这只是篇个人的工作的学习一个总结而已,没有包含任何的技术细节
阅读全文 »

除非你觉得你的时间不是很宝贵,否则不要看这篇流水账式的博文,这只是篇个人的工作的学习一个总结而已,没有包含任何的技术细节
阅读全文 »

0. 背景

一步一步的复习锁,从 Synchronized 到 AQS,其实还有 volatile,但是它是可见性和原子性的保证,和锁还是有本质区别的,就没有纳入了。

1. Synchronized

对象头:每个对象都有一个对象头,里面存储了锁类型(是否偏向锁、轻量锁、重量锁)、GC 标记、对象分代年龄等。
monitor:ObjectMonitor 对象,也叫监视器,每个对象都有一个对应的监视器,里面包括处于阻塞该对象锁的线程以及处于等待该对象锁的线程(前者是排队获取锁、后者是 wait 方法)。

阅读全文 »

除非你觉得你的时间不是很宝贵,否则不要看这篇流水账式的博文,这只是篇个人的工作的学习一个总结而已,没有包含任何的技术细节
阅读全文 »

0. 背景

好久没动脑子去思考 hashmap 的设计了,这次做个简单分析。

1. hash 优化

1
2
3
4
static final int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
阅读全文 »