并发工具包复习重点
1.阻塞队列ArrayBlockingQueue,LinkedBlockQueue,
2.ConcurrentHashMap。和HashTable对比。线程安全,性能高。老版本引入分段锁(桶)机制(16个)
新版本引入CAS(无锁算法 Compare And Swap)+链表变为红黑树3.CountDownLatch 线程递减锁(闭锁)
4.线程池ThreadPool。小池子大队列,大池子小队列的应用场景5.RetreentLock重入锁。底层支持公平锁和非公平锁机制。
6.原子性类型,AtomicInteger,AtomicDouble,AtomicBoolean …
zookeeper复习重点
1.了解Zookeeper的应用场景
①集群管理,比如集群中某台服务器宕机了,能够知道。
客户端启动时向zookeeper注册自己的临时节点。
当此客户端宕机后,则对应的临时节点删除。zookeeper监听节点被删除的事件,从而获知服务器的状态变化。
综上,Zookeeper是通过:临时节点+监听机制来管理集群
②做统一的命名服务。需要确保命名的唯一性。所以可以利用Zookeeper的路径唯一性来实现这个需求。
比如服务器1 : /server/01
服务器2:/server/02
③协调服务通知
通过顺序节点,判断最先抢注的服务器,从而分配资源。
如果要实现公平锁机制:根据顺序号的大小分配
如果要实现非公平锁机制:重新抢注
⑤提供信息的发布和订阅
综上,Zookeeper可以提供很多中心服务,套路是:各类型节点+监听机制实现的。
2.复习Zookeeper的节点类型:
①create/park 普通持久节点
②create -e /park 临时节点
③create -s /park 顺序节点
④create -e -s /park 临时顺序节点
3.复习Zookeeper的选举机制
Zxid最大事务id
选举id
过半选举。
4.复习分布式数据一致性及相关的算法
①2PC 算法二阶段提交协议算法
②3PC 算法三阶段提交协议算法
③Paxos算法﹐过半性算法,当时Google一篇论文《The ChubbyLock Service for loosely coupled distributed system》用到了Paxos算法。
Zookeeper就是借鉴了这篇做的开源实现。