没有合适的资源?快使用搜索试试~ 我知道了~
第三课:zookeeper_典型使用场景实践(预习)1
需积分: 0 0 下载量 86 浏览量
2022-08-03
17:32:56
上传
评论
收藏 787KB PDF 举报
温馨提示
试读
15页
1. 分布式集群管理 2. 分布式注册中 3. 分布式锁 4. 分布式JOB 1. 主动查看线上服务节点 2. 查看服务节点资源使情况 3. 服务离线通知 4.
资源详情
资源评论
资源推荐
第三课:zookeeper 典型使⽤场景实践
课程概要:
1. 分布式集群管理
2. 分布式注册中⼼
3. 分布式锁
4. 分布式JOB
⼀、 分布式集群管理
分布式集群管理的需求:
1. 主动查看线上服务节点
2. 查看服务节点资源使⽤情况
3. 服务离线通知
4. 服务资源(CPU、内存、硬盘)超出阀值通知
架构设计:
节点结构:
1. tuling-manger // 根节点
a. server00001 :<json> //服务节点 1
b. server00002 :<json>//服务节点 2
c. server........n :<json>//服务节点 n
服务状态信息:
a. ip
b. cpu
c. memory
d. disk
功能实现:
数据⽣成与上报:
1. 创建临时节点:
2. 定时变更节点状态信息:
主动查询:
1、实时查询 zookeeper 获取集群节点的状态信息。
被动通知:
1. 监听根节点下⼦节点的变化情况,如果CPU 等硬件资源低于警告位则发出警报。
关键示例代码:
package com.tuling;1
2
import com.fasterxml.jackson.core.JsonProcessingException;
3
import com.fasterxml.jackson.databind.ObjectMapper;
4
import com.tuling.os.CPUMonitorCalc;
5
import com.tuling.os.OsBean;
6
import org.I0Itec.zkclient.IZkChildListener;
7
import org.I0Itec.zkclient.ZkClient;
8
9
import java.io.IOException;
10
import java.lang.instrument.Instrumentation;
11
import java.lang.management.ManagementFactory;
12
import java.lang.management.MemoryUsage;
13
import java.net.InetAddress;
14
import java.net.UnknownHostException;
15
import java.util.ArrayList;
16
import java.util.List;
17
import java.util.stream.Collectors;
18
19
/**
20
* @author Tommy
21
* Created by Tommy on 2019/9/22
22
**/
23
public class Agent {
24
25
private String server = "192.168.0.149:2181";
26
ZkClient zkClient;
27
private static Agent instance;
28
private static final String rootPath = "/tuling-manger";
29
private static final String servicePath = rootPath + "/service";
30
private String nodePath;
31
private Thread stateThread;
32
List<OsBean> list = new ArrayList<>();
33
34
public static void premain(String args, Instrumentation
instrumentation) {
35
instance = new Agent();
36
if (args != null) {
37
instance.server = args;
38
}
39
instance.init();
40
41
}
42
43
// 初始化连接
44
public void init() {
45
zkClient = new ZkClient(server, 5000, 10000);
46
System.out.println("zk连接成功" + server);
47
buildRoot();
48
createServerNode();
49
stateThread = new Thread(() -> {
50
while (true) {
51
updateServerNode();
52
try {
53
Thread.sleep(5000);
54
} catch (InterruptedException e) {
55
e.printStackTrace();
56
}
57
}
58
}, "zk_stateThread");
59
stateThread.setDaemon(true);
60
stateThread.start();
61
62
}
63
64
// 构建根节点
65
public void buildRoot() {
66
if (!zkClient.exists(rootPath)) {
67
zkClient.createPersistent(rootPath);
68
}
69
}
70
71
// 生成服务节点
72
public void createServerNode() {
73
nodePath = zkClient.createEphemeralSequential(servicePath,
getOsInfo());
74
System.out.println("创建节点:" + nodePath);
75
}
76
剩余14页未读,继续阅读
SLHJ-Translator
- 粉丝: 27
- 资源: 297
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 实现坐标转换程序(C#桌面窗体)
- 毕业设计基于树莓派、OpenCV及Python语言的人脸识别.zip
- 客流量预测.rar客流量预测.rar客流量预测.rar
- 613155687470549安卓鸿蒙手机版_10.7.6.6.apk
- 基于51单片机的蓝牙避障小车源码.zip
- esp8266wifi模块教程: 《嵌入式编程与网络通信:C语言操作ESP8266 WiFi模块》-涵盖嵌入式系统、网络编程、
- 基于51单片机的智能工厂火灾检测预警系统源码.zip
- 毕业设计基于SSM和SpringBoot的动态旅游网站.zip
- 基于51单片机的mp3播放器源码+原理图+参考资料.zip
- 随机森林回归预测模型的构建与应用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0