好程序员大数据技术分享:Zookeeper集群管理与选举

  • 时间:
  • 浏览:2
  • 来源:大发彩神app—大发彩神8苹果版

  利用ZooKeeper有另另有还还有一个型态,就都可不可以 实时另一种集群机器存活性监控系统:

  集群中机器有变动的可是,牵连修改的东西比较多。

  这通常用于那种对集群中机器状况,机器在线率有较高要求的场景,都可不可以 快速对集群中机器变化作出响应。原本的场景中,往往另另有还还有一个多监控系统,实时检测集群机器与否存活。过去的做法通常是:监控系统通过一种手段(比如ping)定时检测每个机器,愿因着每个机器其他人定时向监控系统汇报“我还活着”。 你你这些做法可行,否则居于另另有还还有一个比较明显的什么的问题:

  另外,你你这些场景演化一下,可是动态Master选举。这就要用到?EPHEMERAL_SEQUENTIAL类型节点的型态了。

  2.Master选举

  利用ZooKeeper的强一致性,都可不可以 保证在分布式高并发状况下节点创建的全局唯一性,即:一块儿有多个客户端请求创建 /currentMaster 节点,终究一定只另另有还还有一个多客户端请求都可不可以 创建成功。利用你你这些型态,就能很轻易的在分布式环境中进行集群选泽了。

  有一定的延时。

  上文中提到,所有客户端创建请求,最终只另另有还还有一个多都可不可以 创建成功。在这里稍微变化下,可是允许所有请求都可不可以 创建成功,否则得有个创建顺序,于是所有的请求最终在ZK上创建结果的一种愿因着状况是原本: /currentMaster/{sessionId}-1 ,?/currentMaster/{sessionId}-2 ,?/currentMaster/{sessionId}-3 ….. 每次选泽序列号最小的那个机器作为Master,愿因着你你这些机器挂了,愿因着他创建的节点会马上小时,没办法 可是最小的那个机器可是Master了。

  3.搜索系统

  在Hbase中,也是使用ZooKeeper来实现动态HMaster的选举。在Hbase实现中,会在ZK上存储其他ROOT表的地址和 HMaster的地址,HRegionServer也会把其他人以临时节点(Ephemeral)的妙招注册到Zookeeper中,使得HMaster都可不可以 随时感知到各个HRegionServer的存活状况,一块儿,一旦HMaster冒出什么的问题,会重新选举出另另有还还有一个HMaster来运行,从而正确处理了 HMaster的单点什么的问题

     1.集群机器监控

  在分布式环境中,相同的业务应用分布在不同的机器上,其他业务逻辑(之类其他耗时的计算,网络I/O正确处理),往往只都可不可以 让整个集群中的某一台机器进行执行,其余机器都可不可以 共享你你这些结果,原本都可不可以 大大减少重复劳动,提高性能,于是你你这些master选举便是你你这些场景下的碰到的主要什么的问题。

  创建EPHEMERAL类型的节点,一旦客户端和服务器的会话刚始于或过期,没办法 该节点就会消失。

  在搜索系统中,愿因着集群中每个机器都生成一份全量索引,不仅耗时,否则都可不可以 了保证彼此之间索引数据一致。否则让集群中的Master来进行全量索引的生成,否则同步到集群中其它机器。另外,Master选举的容灾妙招是,都可不可以 随时进行手动指定master,可是说应用在zk在无法获取master信息时,都可不可以 通过比如http妙招,向另另有还还有一个地方获取master。

  客户端在节点 x 上注册另另有还还有一个Watcher,没办法 愿因着 x?的子节点变化了,会通知该客户端。

  之类,监控系统在 /clusterServers 节点上注册另另有还还有一个Watcher,可是每动态加机器,没办法 就往 /clusterServers 下创建另另有还还有一个 EPHEMERAL类型的节点:/clusterServers/{hostname}. 原本,监控系统就都可不可以 实时知道机器的增减状况,至于后续正确处理可是监控系统的业务了。