Zookeeper监控的作用

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

此时,须要一个可以动态注冊和获取服务信息的地方。来统一管理服务名称和其对应的server列表信息,称之为服务配置中心,服务提供者在启动时,将其提供的服务名称、server地址注冊到服务配置宗新,服务消费者通过服务配置中心来获得须要调用的服务的机器列表。

通过对应的负载均衡算法,选取当中一台server进行调用。当server宕机或者下线时。对应的机器须要可以动态地从服务配置中心里面溢出,并通知对应的服务消费者。否则服务消费者就有可能由于调用到已经失效服务而错误发生。在这个过程中,服务消费者仅仅有在第一次调用服务时须要查询服务配置中心。然后将查询到的信息缓存到本地。后面的调用直接使用本地缓存的服务地址列表信息,而不须要又一次发起请求道服务配置中心去获取对应的服务地址列表,直到服务的地址列表有变更(机器上线或者下线)。

这样的无中心化的结构攻克了之前负载均衡设备所导致的单点故障问题,而且大大减轻了服务配置中心的压力

基于Zookeeper的持久和非持久节点,我们可以近乎实时地感知到后端server的状态(上线、下线、宕机)通过集群间的zab协议,使得服务配置信息可以保持一致。而zookeeper本身容错特性和leader选举机制,能保障我们方便进行扩容。通过zookeeper来实现服务动态注冊。

机器上线和下线的动态感知,扩容方便,容错性好。且无中心化结构可以解决之前使用负载均衡设备所带来的单点故障问题。仅仅有当配置信息更新时才会去zookeeper上获取最新的服务地址列表,其它时候使用本地缓存就可以。

一旦server与zookeeper集群断开连接,节点也就不存在了,通过注冊相应的watcher,服务消费者可以第一时间获知服务提供者机器信息的变更。利用其znode的特点和watcher机制,将其作为动态注冊和获取服务信息的配置中心。统一管理服务名称和其相应的server列表信息,我们可以近乎实时地感知到后端server的状态(上线、下线、宕机).zookeeper集群间通过zab协议。服务配置信息可以保持一致。而zookeeper本身容错特性和leader选举机制,可以保障我们方便的扩容。

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

时间: 2024-10-22 18:59:27

Zookeeper监控的作用的相关文章

zookeeper监控告警

一.ZooKeeper简介 ZooKeeper作为分布式系统中重要的组件,目前在业界使用越来越广泛,ZooKeeper的使用场景非常多,以下是几种典型的应用场景: l  数据发布与订阅(配置中心) l  负载均衡 l  命名服务(Naming Service) l  分布式通知/协调 l  集群管理与Master选举 l  分布式锁 zk环境搭建 这里不详细说明,提供详细blog说明. Zookeeper集群搭建:http://www.cnblogs.com/linuxbug/p/4840137

ZooKeeper监控(taokeeper)

http://jm.taobao.org/?p=1450 在公司内部,有不少应用已经强依赖zookeeper,zookeeper的工作状态直接影响它们的正常工作.目前开源世界中暂没有一个比较成熟的zookeeper-monitor, 于是开始zookeeper监控这块工作. 目前zookeeper-monitor能做哪些事情,讲到这个,首先来看看哪些因素对zookeeper正常工作比较大的影响: 用于zookeeper写日志的目录要有足够大小,并且强烈建议在单独的磁盘(挂载点)上,这是影响ZK性

ZooKeeper监控

http://jm-blog.aliapp.com/?p=1450 在公司内部,有不少应用已经强依赖zookeeper,zookeeper的工作状态直接影响它们的正常工作.目前开源世界中暂没有一个比较成熟的zookeeper-monitor, 于是开始zookeeper监控这块工作. 目前zookeeper-monitor能做哪些事情,讲到这个,首先来看看哪些因素对zookeeper正常工作比较大的影响: 用于zookeeper写日志的目录要有足够大小,并且强烈建议在单独的磁盘(挂载点)上,这是

Zookeeper监控(Zabbix)

一直在弄监控,这些个中间件Zookeeper.Kafka......,平时也只知道一点皮毛,也就搭建部署过,没有真正的用过,一般都是大数据的同学在用,作为运维人员我需要对他做一个监控,由于对他不是知根知底,监控哪些指标就真的是一个大头了.经过不断的在网上搜集,看别人是怎么做的,做了以下一个基本的监控. 一.效果图 二.指标 监控最重要的就是数据,一切皆数据,有了数据想怎么监控就怎么监控.那么哪些数据是重要的?这些数据怎么获取?监控指标尤其重要. Zookeeper的监控指标(通过网上收集,等实际

zookeeper 监控 —— 阿里taokeeper

TaoKeeper是一个围绕ZooKeeper做的监控与报表系统. 主要功能如下: 能够统计ZK集群连接数,Watcher数目 ,节点数等系列信息,并按一定规则进行一些聚合操作; 能够通过设置一些阈值来达到监控报警的效果; 能够按天按周进行ZK运行状 况的报表展现; 其中ZK实时运行状态的统计和机器存活性的检查功能能够帮助ZK的运维人员进行排错,及时发现系统隐患,确保故障的及时恢复. http://sofar.blog.51cto.com/353572/1298468/ http://www.i

zookeeper监控znode

package zookeeper; import java.util.List; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.Watcher.Event.EventType; import org.apache.zookeeper.Zoo

通过TelnetClient获取Zookeeper监控数据

如果想编写一个监控Zookeeper的Java程序,可以通过两种方式 : (1)通过TelnetClient发送命令 ,命令的详解参考:http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#sc_zkCommands (2)通过JMX,说明请参考:http://zookeeper.apache.org/doc/trunk/zookeeperJMX.html 本文通过一个简单的例子来演示如何通过TelnetClient发送mntr命令获

Zabbix实战-简易教程--中间件ZooKeeper监控

一.监控思路 通过zabbix trapper方式监控,之前看到网友们都是通过定时任务进行主动上传数据,但是,zabbix还有另外一神器--自动发现,也能达到同样的功能. 二.实现步骤 1.准备脚本 https://github.com/loveqx/zabbix-doc/blob/master/zabbix-scripts/zabbix-template-zookeeper/zookeeper-monitor-lld.py 2.安装依赖包 #Centos6 rpm -ivh http://re

Pulsar、ZooKeeper、BookKeeper 作用简述

Pulsar:采取了存储计算分离的技术ZooKeeper 集群的作用和在 Kafka 中是一样的,都是被用来存储元数据.BookKeeper 集群则被用来存储消息数据.BookKeeper 有点儿类似 HDFS,是一个分布式的存储集群,存储单元是ledger,Ledger可以简单的理解为某个主题队列中的一段,包含了连续的若干条消息(entry),为了保证Ledger中entry的严格顺序,pulsar为Ledger增加了一次性写入限制,解决并发写入控制,只有创建Ledger的broker可以写入