不适合存储大的数据
使用算法:paxos,主从算法(复制算法)
推荐奇数个节点
解决问题:为分布式服务的一个技术,分布式锁
顺序一致性:发起请求应用到zk的顺序是一致的
原子性:集群中的所有机器都会成功应用某一事物
单一视图:访问哪台机器都是一样的
实时性:
可靠性:集群中的多个机器一定会全部都同步成功才会返回给客户端的
leader、follower、observer(java操作zk的代码)
可以实现:配置管理、集群管理、发布订阅、数据库切换、队列管理、分布式日志收集、分布式锁
ZAB和paxos算法,自己扫盲
源生API:每次都需要自己watch,而且是一次性的;不能实现递归创建删除;
zkClient:可以通过设置一个监听器就可以watch,不需要每次都手动watch;可以递归创建和删除
弊端:只能监听儿子节点,不能监听孙子辈节点;递归创建的时候不能给节点赋值;不能实现分布式锁;原子性统计
curator框架:支持链式编程(需要什么参数加什么);递归创建时可以给节点赋值;所有的功能都能实现;
分布式锁:InterProcessMutex;一把锁,针对某个节点;
分布式网站技术器:DistributedAtomicInteger--与jdk的AtomicInteger类似,只是这是分布式的;
分布式barrier1:DistributedDoubleBarrier--实现等待多个客户端到了才同时运行、
分布式barrier2:DistributedBarrier需要额外的一个任务去移除barrier,另外阻碍着的任务才会执行