0、zookeeper特性
Zookeeper特性:数据一致性,原子性,可靠性,实时性,顺序性,过半性。
此处讲解其中的顺序性的意义,及其实现原理。
- 解决问题:客户端发送三个请求给服务端,服务端需要按照客户端发送请求的的顺序来执行这三个请求。
- 解决思路:每次发送请求时会携带一个命令版本号,命令版本号是递增的。如图所示,不管哪个请求先到服务端,服务端都会判断是否还有更靠前的请求没有接收到。直到满足了顺序性才会去执行请求。
1、配置文件统一管理
如图,修改client1的配置文件信息,并保存到/park01节点,client2和client3会自动同步配置文件信息。
2、数据的订阅和发布
与配置文件统一管理思想一致
3、分布式屏障
目的:当client1和client2都完成任务后,才能触发client3的任务。类似于同一个进程里的栅栏。
4、分布式锁
目的:当集群中有一个公共资源,但有多个客户端需要使用时,如何让这些客户端有先后顺序的去使用这个资源。
5、统一命名服务
分布式应用中需要一套完整的命名规则,利用Znode节点路径唯一的特点,可以使用节点的路径来代表服务名。
6、集群管理
7、总结
这些应用场景基本上都是通过:节点类型 + 监听机制来实现。
碰到其他的应用场景,也可以从这个角度去思考。