IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 监听服务器节点动态上下线案例 -> 正文阅读

[大数据]监听服务器节点动态上下线案例

1.创建maven工程

在这里插入图片描述

2.添加pom.xml文件下的依赖

在这里插入图片描述

3.拷贝log4j.properties文件到项目根目录

在这里插入图片描述

log4j.rootLogger=INFO, stdout  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n  
log4j.appender.logfile=org.apache.log4j.FileAppender  
log4j.appender.logfile.File=target/spring.log  
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n  

4创建zookeeper客户端

在这里插入图片描述

private static String connectString = "hadoop102:2181,hadoop103:2181,hadoop104:2181";
    private static int sessionTimeout = 2000;
    private ZooKeeper zkClient = null;

    @Before
    //如果需要在每个@Test方法执行之前,先执行一部分初始化代码,可以将初始化代码写到@Before
    public void init() throws Exception {
        //1:连接到zk
        //ZooKeeper(String connectString , int sessionTimeout, Watcher watcher)
        // 参1  连接信息
        // 参2  超时
        // 参3  监听器  负责监听重要的对象或者数据的变化 。如果出现变化,立马执行处理方法。
        zkClient = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
            public void process(WatchedEvent watchedEvent) {
                System.out.println("发送短信");
                try {
                    print();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

5.创建一个测试类,创建子节点

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.在创建一个不需要监听测试,判断是否存在此节点

在这里插入图片描述

在这里插入图片描述

7.查询sanguo下的子节点

public void print() throws Exception {
        List<String> list = zkClient.getChildren("/sanguo", true);
        System.out.println(list);
    }

在这里插入图片描述

8.获取子节点并监听节点变化,将Watch的值改为true

 public void print() throws Exception {
        List<String> list = zkClient.getChildren("/sanguo", true);
        System.out.println(list);
    }
    @Test
    public void  test03() throws Exception {


        print();
        Thread.sleep(Long.MAX_VALUE);
    }

在这里插入图片描述

在这里插入图片描述

9.先在集群上创建/servers节点

create /servers "servers"

在这里插入图片描述

10.客户端监听代码编写

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

11.服务器端向Zookeeper写操作实现

在这里插入图片描述

创建节点

    private void createNode(String hostname) throws KeeperException, InterruptedException {
        //create   /servers/server1  "server1"
        System.out.println(hostname+" 上线了");
        zk.create(parentNode+"/"+hostname,hostname.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
    }

创建hadoop102节点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.总结

? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服务器都是平等的

在这里插入图片描述

Zookeeper中的角色主要有以下三类:

在这里插入图片描述

ZooKeeper的部署方式有哪几种?集群中的角色有哪些?集群最少需要几台机器?

(1)部署方式单机模式、集群模式
(2)角色:Leader和Follower
(3)集群最少需要机器数:3

ZooKeeper的部署方式有哪几种?集群中的角色有哪些?集群最少需要几台机器?

(1)部署方式单机模式、集群模式
(2)角色:Leader和Follower
(3)集群最少需要机器数:3

Zookeeper的监听:

Zookeeper 中的监视是轻量级的,因此容易设置、维护和分发。当客户端与 Zookeeper 服务器端失去联系时,客户端并不会收到监视事件的通知,只有当客户端重新连接后,若在必要的情况下,以前注册的监视会重新被注册并触发,对于开发人员来说 这通常是透明的。只有一种情况会导致监视事件的丢失,即:通过 exists() 设置了某个 znode 节点的监视,但是如果某个客户端在此 znode 节点被创建和删除的时间间隔内与 zookeeper 服务器失去了联系,该客户端即使稍后重新连接 zookeeper服务器后也得不到事件通知。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 11:43:03  更:2021-07-29 11:43:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 9:23:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码