zookeeper命名服务
zookeeper概念
zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,底层组成单元是znode,对于zookeeper来说,所有的功能都是基于znode来实现的,因此有万物皆节点的说法。
zookeeper命名服务
zookeeper的命名服务功能主要是根据指定名字来获取资源或服务的地址,提供者等信息,利用其znode的特点和watcher机制,将其作为动态注册和获取服务信息的配置中心,统一管理服务名称和其对应的服务器列表信息,我们能够近乎实时地感知到后端服务器的状态(上线、下线、宕机)。
举例来说,A服务部署在六台服务器上,存在六个完全不同的ip地址,同时A服务本身提供一个dubbo接口对外,此时有个B服务需要调用此接口,如果提供某一台服务器的ip,则存在该服务器宕机情况下接口不可用的情况,再切换ip就会影响服务的正常使用。此时,可以使用zookeeper作为注册中心,A服务的六台服务在指定znode下创建子节点,而B服务调用之前先通过指定znode的路径获取A服务的任意子节点中的ip信息,然后通过ip访问。同时zookeeper动态维护这部分节点,定时利用心跳请求检查A服务的服务器状态,一旦发现某服务器无反馈,就删除节点,防止被B服务获取调用,整个流程如下:

zookeeper命名服务作用
负载均衡
轮询服务注册表,尽可能将服务请求均匀分配到所有注册有效的服务器上。
健康检查
动态维护服务地址注册表,利用心跳请求实时监控注册服务状态,删除无效服务节点,维护有效的地址注册表。
调用监控
通过统计注册表各个子节点被访问次数来监控服务调用情况。
动态路由
可以通过配置注册表参数,在不修改服务代码的情况下,动态指定服务访问的机器。
动态配置
注册表的子节点可以作为单服务器的配置中心,可以直接修改节点配置而不是修改代码的方式,动态修改服务运行的部分参数。
zookeeper命名服务的更多相关文章
- Zookeeper命名服务——生成分布式有序且唯一id
生成分布式有序且唯一id的方法有很多种,使用zookeeper是比较简单的一种方法,只是生成的速度不高,这里只是一个借助zk的版本号生成分布式唯一且有序id的例子. ZkIdGenerator.jav ...
- Zookeeper实践方案:(4)命名服务
1.基本介绍 命名服务是指通过指定的名字来获取资源或者服务的地址,提供者的信息.利用Zookeeper非常easy创建一个全局的路径,而这个路径就能够作为一个名字.它能够指向集群中的集群.提供的服务的 ...
- ZooKeeper实现命名服务
使用场景 命名服务就是提供名称的服务,Zookeeper的命名服务有两个应用方面.一个是提供类似JNDI功能,另一个是制作分布式的序列号生成器. JNDI功能,我们利用Zookeep ...
- zookeeper全局数据一致性及其典型应用(发布订阅、命名服务、帮助其他集群选举)
ZooKeeper全局数据一致性: 全局数据一致:集群中每个服务器保存一份相同的数据副本,client 无论连接到哪个服务器,展示的数据都是一致的,这是最重要的特征. 那么zookeeper集群是怎样 ...
- 为什么不应该使用Zookeeper做服务发现?(转载)
转载自: http://dockone.io/article/78 [编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个 ...
- 为什么不应该使用ZooKeeper做服务发现
[编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个发现服务)的优劣对比,分享了Knewton在云计算平台部署服务的经验 ...
- 【转帖】基于Zookeeper的服务注册与发现
http://www.techweb.com.cn/network/hardware/2015-12-25/2246973.shtml 背景 大多数系统都是从一个单一系统开始起步的,随着公司业务的快速 ...
- Hadoop Zookeeper 分布式服务框架
what is Zookeeper? 1,开源的分布式的,为分布式应用提供协调服务的Apache项目2,提供一个简单原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务3,设计非常易于编程,它 ...
- Web Api 基于Zookeeper的服务注册与发现
安装与差异 Zookeeper安装请参考我上篇文章 http://www.cnblogs.com/woxpp/p/7700368.html 基于Nginx的服务提供和消费 基于zookeeper的服务 ...
随机推荐
- linux在线安装telnet
平常在调试机器网络互通的时候使用到telnet,新机器一般没安装相应命令,需要我们手工安装. 下面是在线安装的方法,使用以下命令即可完成安装: yum install telnet
- android自定义Activity窗口大小(theme运用)
http://gundumw100.iteye.com/blog/906195 正常情况下,我们开发的应用程序都会上占满整个屏幕,那么怎么样才能开发出自定义窗口大小的的程序呢?如下图所示: 实现起来非 ...
- P1314 聪明的质监员(前缀和+二分)
P1314 聪明的质监员 显然可以二分参数W 统计Y用下前缀和即可. #include<iostream> #include<cstdio> #include<cstri ...
- @Bean 生命周期
bean生命周期: 实例bean 1.当调用者通过getBean(beanName)向容器请求某一个Bean时,如果容器注册了org.springframework.beans.factory.con ...
- Easy install ryu
参考:Ubuntu14.04安装Ryu控制器 环境:Ubuntu 14.04 64bit 使用pip安装ryu: // dependencies sudo apt-get install Python ...
- SpringBoot使用Redis数据库
(1)pom.xml文件引入jar包,如下: <dependency> <groupId>org.springframework.boot</groupId> &l ...
- spring boot2 基于百度云apiface实现人脸检测与认证1
原理介绍: 基于百度云的人脸资料库(用户上传),调用本地摄像头抓拍的图像,与百度云的用户图像做比对,实现人脸认证. 主要步骤如下: 1. 创建百度去账号 2. 在百度云控制台中创建人脸识别的应用,并记 ...
- [原][译][osgearth][EarthFile]关于EarthFile 的Model Layer 讲解(通过earth文件加载模型层)(OE官方文档翻译)
原文参考:http://docs.osgearth.org/en/latest/references/earthfile.html#model-layer 本人翻译能有限.... 模型层 模型层渲染“ ...
- CentOS7 64位下MySQL5.7安装与配置
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- powerdesigner安装图解