分布式
单体应用
分布式应用
zookeeper
分布式协调服务
分布式数据一致性解决方案
a取钱在db1里扣掉了取出的钱
a查询余额,调用的是db2的服务
此时就需要db1与db2的数据保持一致
强一致性:db2要实时与db1一致,否则不提供服务
最终一致性:db2最终与db1一致
应用场景
配置中心
日常配置文件都存在本地,随着集群数量越来越多,每次修改配置将会变的异常困难。
将配置信息存放在zk的一个节点中,同时给该节点注册一个数据节点变更的watcher监听,一旦节点信息发生变更,所有订阅该节点的客户端都可以获取数据变更通知。
负载均衡
类似nginx
命名服务
dubbo,使用zookeeper命名服务
DNS服务
集群管理
分布式锁
借助数据库实现分布式锁
通过redis实现分布式锁
通过redisson实现
zookeeper实现分布式锁
有序临时节点+watch监听
为每个执行的线程创建一个有序的临时节点,为确保有序性,在创建完节点后,会再次获取全部节点,再次排序,序号最小的获得锁,不是最小的则监听 直到为最小时获得锁