【第22期】观点:IT 行业加班,到底有没有价值?

Zookeeper监控的原理

转载 2017年01月03日 09:55:05


之前写的负载均衡服务器项目,只能在启动时配置结点,运行状态时节点宕机倒是可以删除它。但是不能实时得检测节点信息,尤其是如果新增节点还要服务器重启重新配置,本文的 Zookeeper 给了我一个思路。


当服务越来越多,规模越来越大时,对应的机器数量也越来越大,单靠人工来管理和维护服务及地址的配置地址信息,已经很困难了,并且,依赖单一的硬件负载均衡设备或者使用LVS.nginx等软件方案进行路由和负载均衡调度,单点故障的问题也开始凸显,一旦服务路由或者负载均衡服务器宕机,依赖他的所有服务均将失效。


         此时,需要一个能够动态注册和获取服务信息的地方。来统一管理服务名称和其对应的服务器列表信息,称之为服务配置中心,服务提供者在启动时,将其提供的服务名称、服务器地址注册到服务配置宗新,服务消费者通过服务配置中心来获得需要调用的服务的机器列表。通过相应的负载均衡算法,选取其中一台服务器进行调用。当服务器宕机或者下线时,相应的机器需要能够动态地从服务配置中心里面溢出,并通知相应的服务消费者,否则服务消费者就有可能因为调用到已经失效服务而发生错误,在这个过程中,服务消费者只有在第一次调用服务时需要查询服务配置中心,然后将查询到的信息缓存到本地,后面的调用直接使用本地缓存的服务地址列表信息,而不需要重新发起请求道服务配置中心去获取相应的服务地址列表,直到服务的地址列表有变更(机器上线或者下线)。这种无中心化的结构解决了之前负载均衡设备所导致的单点故障问题,并且大大减轻了服务配置中心的压力


         基于Zookeeper的持久和非持久节点,我们能够近乎实时地感知到后端服务器的状态(上线、下线、宕机)通过集群间的zab协议,使得服务配置信息能够保持一致。而zookeeper本身容错特性和leader选举机制,能保障我们方便进行扩容,通过zookeeper来实现服务动态注册。机器上线和下线的动态感知,扩容方便,容错性好,且无中心化结构能够解决之前使用负载均衡设备所带来的单点故障问题,只有当配置信息更新时才会去zookeeper上获取最新的服务地址列表,其他时候使用本地缓存即可。
 
         一旦服务器与zookeeper集群断开连接,节点也就不存在了,通过注册相应的watcher,服务消费者能够第一时间获知服务提供者机器信息的变更,利用其znode的特点和watcher机制,将其作为动态注册和获取服务信息的配置中心,统一管理服务名称和其对应的服务器列表信息,我们能够近乎实时地感知到后端服务器的状态(上线、下线、宕机).zookeeper集群间通过zab协议,服务配置信息能够保持一致,而zookeeper本身容错特性和leader选举机制,能够保障我们方便的扩容。


--from《大型分布式网站架构设计与实践》


转自:http://blog.csdn.net/yusiguyuan/article/details/47682537

举报

相关文章推荐

Zookeeper监控的作用

当服务越来越多,规模越来越大时,对应的机器数量也越来越大,单靠人工来管理和维护服务及地址的配置地址信息,已经很困难了,并且,依赖单一的硬件负载均衡设备或者使用LVS.nginx等软件方案进行路由和负载...

zookeeper 监控指标

目前zookeeper获取监控指标已知的有两种方式: 1、通过zookeeper自带的 four letter words command 获取各种各样的监控指标 2、通过JMX Client连接zo...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

通过JMX监控Zookeeper

JMX监控zookeeper

ZooKeeper监控

在公司内部,有不少应用已经强依赖zookeeper,zookeeper的工作状态直接影响它们的正常工作。目前开源世界中暂没有一个比较成熟的zookeeper-monitor, 于是开始zookeepe...

zookeeper深入学习(2)---客户端监控服务器端的上下线

1、基础运行 zkCli.sh –server 进入命令行工具;1、使用 ls 命令来查看当前 ZooKeeper 中所包含的内容:[zk: 202.115.36.251:2181(CONNECTED...

使用zookeeper监控服务

只针对windows平台, linux平台比较容易,就不写了. 一、.单机 安装zookeeper的三个服务.目录层次如下: e:|    |zks       |      |serve...

Zookeeper的安装及监控中心

一,安装jdk            1. jdk 存放在哪里  /opt     2. 把软件拷贝到/opt     3. 绿色软件,解压     4.设置环境变量        v...

利用 Java API 监控 Zookeeper 的结点变化

作为分布式系统的协调工具,Zookeeper 在 Hadoop 生态系统里扮演着很重要的角色。因为利用 Zookeeper,我们可以很轻松地在分布式系统里实现诸如“统一命名服务”、“分布式锁服务”、“...

zookeeper节点数与watch的性能测试

zookeeper中节点数量理论上仅受限于内存,但一个节点下的子节点数量受限于request/response 1M数据 (size of data / number of znodes) zo...

ZooKeeper场景实践:(6)集群监控和Master选举

通常用于那种对集群中机器状态,机器在线率有较高要求的场景,能够快速对集群中机器变化作出响应。这样的场景中,往往有一个监控系统,实时检测集群机器是否存活。 利用ZooKeeper有两个特性(读可监控,...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)