Zookeepe的简单应用例子
来源:互联网 发布:vr全景网站源码 编辑:程序博客网 时间:2024/05/18 01:00
Zookeeper能帮我们作什么事情呢?简单的例子:假设我们我们有个20个搜索引擎的服务器(每个负责总索引中的一部分的搜索任务)和一个总服务器(负责向这20个搜索引擎的服务器发出搜索请求并合并结果集),一个备用的总服务器(负责当总服务器宕机时替换总服务器),一个web的 cgi(向总服务器发出搜索请求).搜索引擎的服务器中的15个服务器现在提供搜索服务,5个服务器正在生成索引.这20个搜索引擎的服务器经常要让正在提供搜索服务的服务器停止提供服务开始生成索引,或生成索引的服务器已经把索引生成完成可以搜索提供服务了.使用Zookeeper可以保证总服务器自动感知有多少提供搜索引擎的服务器并向这些服务器发出搜索请求,备用的总服务器宕机时自动启用备用的总服务器,web的cgi能够自动地获知总服务器的网络地址变化.这些又如何做到呢?
-
提供搜索引擎的服务器都在Zookeeper中创建znode,zk.create("/search/nodes/node1",
"hostname".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateFlags.EPHEMERAL); - 总服务器可以从Zookeeper中获取一个znode的子节点的列表,zk.getChildren("/search/nodes", true);
- 总服务器遍历这些子节点,并获取子节点的数据生成提供搜索引擎的服务器列表.
- 当总服务器接收到子节点改变的事件信息,重新返回第二步.
- 总服务器在Zookeeper中创建节点,zk.create("/search/master", "hostname".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateFlags.EPHEMERAL);
- 备用的总服务器监控Zookeeper中的"/search/master"节点.当这个znode的节点数据改变时,把自己启动变成总服务器,并把自己的网络地址数据放进这个节点.
- web的cgi从Zookeeper中"/search/master"节点获取总服务器的网络地址数据并向其发送搜索请求.
- web的cgi监控Zookeeper中的"/search/master"节点,当这个znode的节点数据改变时,从这个节点获取总服务器的网络地址数据,并改变当前的总服务器的网络地址.
- Zookeepe的简单应用例子
- springmvc的简单应用例子
- sendmsg()和recvmsg()应用的简单例子。
- 消息摘要 简单的应用例子
- epoll简介和简单的应用例子
- .NET MSChart应用的一个简单例子
- 简单的Servlet应用小例子
- solr简单应用的代码例子
- html表单应用的简单例子
- 简单的偏函数应用例子
- Ajax简单应用例子
- 简单应用OpenCV例子
- java中类集的应用,简单的一个图书超市的例子
- 写个简单的关于Filter过滤器应用的例子
- Timer的一个应用例子--一个简单的表
- 使用axis测试一个简单的webservice的应用例子
- Nginx反向代理的应用例子及简单的笔记
- Struts中应用Struts-menu的简单例子
- GCC-LD 连接脚本分析--uboot.lds
- error LNK2001: unresolved external symbol
- 三、开发环境准备
- TCP连接三次握手
- 位运算符号
- Zookeepe的简单应用例子
- 虚拟网卡 TUN/TAP 驱动程序设计原理
- iphone开发之设置UITabBar的相关属性
- PHP中自动检测屏幕分辨率
- window 与ubuntu共享文件 hgfs下为空和不用每次挂载hgfs的方法
- C# 启动进程 重定向IO 死锁避免 .
- DroidDraw教程
- 取出复制过来的验码中多余的 ^M
- 项目中常用的十个正则表达式