ZooKeeper 实现命名服务

使用场景 

        命名服务就是提供名称的服务,Zookeeper的命名服务有两个应用方面。一个是提供类似JNDI功能,另一个是制作分布式的序列号生成器

        JNDI功能,我们利用Zookeeper的分层结构,可以把系统中的各种服务的名称、地址、以及目录信息存放在Zookeeper中,需要的时候去Zookeeper中读取。

        另一个是利用Zookeeper循序节点的特性,制作分布式的序列号生成器,或者叫id生成器。 (分布式环境下使用作为数据库id,另外一种是UUID(缺点:没有规律)),Zookeeper可以生成有顺序的容易理解的同时支持分布式环境的编号。 

原理解析(序列号生成器

        架构图
         ZooKeeper 实现命名服务_第1张图片

         核心算法流程
         ZooKeeper 实现命名服务_第2张图片

        代码: https://github.com/JeromeSuz/demo_zookeeper/tree/master/src/main/java/com/demo/_9nameservice


你可能感兴趣的:(分布式)