`

Zookeeper应用简单例子

阅读更多
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的节点数据改变时,从这个节点获取总服务器的网络地址数据,并改变当前的总服务器的网络地址.
分享到:
评论

相关推荐

    Dubbo+zookeeper 入门简单实例

    【标题】"Dubbo+zookeeper 入门简单实例"揭示了如何在Java环境中结合Dubbo和Zookeeper构建一个基础的服务治理框架。Dubbo是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,而Zookeeper则是一个分布式协调服务...

    zookeeper和dubbo简单例子

    在这个"zookeeper和dubbo简单例子"中,我们将探讨如何利用Maven构建一个简单的Zookeeper和Dubbo应用。 首先,让我们深入了解一下Zookeeper。Zookeeper的核心功能包括命名服务、配置管理、集群同步、领导选举等。它...

    zookeeper-watcher- 简单例子

    《Zookeeper Watcher:深入理解与简单实例》 Apache ZooKeeper 是一个分布式协调服务,它为分布式应用程序提供了简化的命名...理解并掌握Watcher的工作原理和使用方法,对于提升Zookeeper应用的性能和稳定性至关重要。

    ZooKeeper的简单使用

    这篇博客文章"ZooKeeper的简单使用"可能是介绍如何在实际项目中集成和操作ZooKeeper。 首先,ZooKeeper的核心概念包括节点(ZNode)、会话(Session)和watcher事件。ZNode是ZooKeeper数据存储的基本单位,每个...

    zookeeper-server-client 简单例子

    由于没有具体的源代码,我们只能假设 `src` 目录下包含的是一个简单的 Zookeeper 客户端示例。通常,这样的示例会包括创建 Zookeeper 连接、创建节点、读取节点数据、设置节点数据、监听节点变化等基本操作。 例如...

    kafka+zookeeper+简单demo

    Kafka是一种高吞吐量、低延迟的分布式消息系统,而ZooKeeper则是一个集中式服务,用于分布式应用程序的配置管理、命名服务、集群同步等。在这个"Kafka + ZooKeeper + 简单demo"中,我们将深入理解这两个工具的结合...

    zookeeper 例子

    在本例中,我们将深入探讨Zookeeper的基本概念、操作实例以及如何实现领导者选举和分布式锁。 **一、Zookeeper基本概念** 1. **节点(Znode)**: Zookeeper的数据存储结构是树形的,每个节点称为Znode。Znode分为...

    springboot zookeeper ,微服务框架简单实现

    在"springboot zookeeper 微服务框架简单实现"的项目中,我们可能会做以下工作: 1. **集成Zookeeper**: 首先,我们需要在SpringBoot应用中添加Zookeeper的相关依赖,这通常通过在pom.xml文件中引入zookeeper客户端...

    zookeeper python接口实例详解

    Zookeeper 是一个分布式协调服务,常用于管理分布式应用中的配置信息、命名服务、集群状态同步等。Python 中访问 Zookeeper 的接口主要有两个库:zkpython 和 kazoo。本实例主要介绍的是 zkpython。 **zkpython ...

    ZooKeeper应用场景

    ### ZooKeeper应用场景详解 #### 一、概述 ZooKeeper是一个分布式的协调服务框架,它主要解决了分布式系统中常见的协调问题。通过实现Paxos算法,确保了在分布式环境中数据的高度一致性。ZooKeeper提供了简单易用...

    dubbo+zookeeper实例

    【描述】提到的" dubbo+zookeeper+springmvc实例demo"是一个综合性的应用示例,它将Dubbo的远程调用能力、Zookeeper的服务发现和注册功能与Spring MVC的Web开发框架结合在一起。这个实例通常会展示如何在Spring MVC...

    ZooKeeper配置和简单使用.pptx

    在伪集群模式下,可以在同一台机器上模拟多个ZooKeeper实例。具体步骤如下: 1. **创建多个Server文件夹**:每个Server文件夹内包含一个`myid`文件,内容分别为1、2、3等。 2. **修改配置文件**:每个Server的`zoo....

    DUBBO+Zookeeper小例子

    本示例"**DUBBO+Zookeeper小例子**"旨在演示如何利用SpringMVC、Dubbo和Zookeeper来实现一个微服务架构。这是一次将这些组件集成到一起的实际操作,通过IDEA(IntelliJ IDEA)开发环境进行。在开始之前,确保你已...

    Zookeeper_安装和配置

    4. **启动**:分别进入每个 Zookeeper 实例的 `bin` 目录,启动服务。 5. **验证**:通过 Zookeeper 客户端工具连接集群中的任意一个服务器,查看集群状态。 ### Zookeeper 功能解析 - **配置管理**:Zookeeper ...

    zookeeper和dubbo例子

    在分布式系统领域,Zookeeper和Dubbo是两个非常重要的组件,它们在构建高可用、高...通过这个实例,你可以深入理解分布式系统中服务治理的核心概念和实现方式,这对于理解和构建大规模分布式应用有着重要的实践意义。

    dubbo spring zookeeper分布式集群搭建完整例子

    在构建分布式系统时,"dubbo spring zookeeper分布式集群搭建完整例子" 提供了一个实践性的教程,涵盖了多种关键技术和工具。下面将详细解释这个例子中涉及的知识点。 首先,我们来了解一下**SpringMVC**。...

    idea开发的springboot+dubbo+zookeeper的简单案例,下载即可调试

    这是一个基于IntelliJ IDEA(简称Idea)17版本,使用Java 8开发的Spring Boot、Dubbo和Zookeeper整合的简单应用示例项目。这个压缩包中的内容可能包括了项目的基本结构、配置文件、源代码以及必要的依赖库。下面我们...

    dubbo+zookeeper入门实例

    在这个实例中,我们将了解如何设置和运行一个简单的Dubbo应用,利用Zookeeper作为服务注册中心。 【描述】"dubbo+zookeeper快速入门程序"旨在帮助开发者快速理解这两个组件如何协同工作。Dubbo通过Zookeeper实现...

    dubbo+sping+zookeeper整合例子完整版(包括步骤文档和所有jar)

    遗憾的是,它没有涉及Dubbo与Spring Boot、Redis、Zookeeper、Seata和RabbitMQ的集成,但作为基础,这个例子对于理解服务治理和服务发现的核心概念至关重要。 【知识点】 1. **Dubbo**:Dubbo是阿里巴巴开源的一个...

Global site tag (gtag.js) - Google Analytics