当前位置: 首页 > news >正文

表白时刻网站价格网站

表白时刻网站,价格网站,示范校建设专题网站,2023新闻大事10条服务器动态上下线监听案例 需求 在分布式系统中#xff0c;主节点可以有多台#xff0c;可以动态上下线#xff0c;任意一台客户端都能实时感知到主节点服务器的上下线。 需求分析 客户端能实时洞察到服务器上下线的变化 基本流程#xff1a; ​ 1.服务端启动时去注册…服务器动态上下线监听案例 需求 在分布式系统中主节点可以有多台可以动态上下线任意一台客户端都能实时感知到主节点服务器的上下线。 需求分析 客户端能实时洞察到服务器上下线的变化 基本流程 ​ 1.服务端启动时去注册信息创建的都是临时节点 ​ 2.客户端获取到当前在线服务器列表并注册监听 ​ 3.当服务器节点下线 ​ 4.服务器节点上下线的通知 ​ 5.process()重新再去获取服务器列表并注册监听 具体实现 环境准备 在pom.xml添加相关依赖 dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversionRELEASE/version/dependencydependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion2.8.2/version/dependencydependencygroupIdorg.apache.zookeeper/groupIdartifactIdzookeeper/artifactIdversion3.6.1/version/dependency/dependencies1、启动zookeeper集群在集群上创建/servers节点 [rootkk01 ~]# xzk.sh start # zk集群启动脚本# 如果没有脚本使用下面命令去集群的每台机器收到启动zkServer也可以 zkServer.sh start# 进入zk客户端 [rootkk01 ~]# zkCli.sh -server# 创建servers节点 [zk: localhost:2181(CONNECTED) 3] ls / [zookeeper] [zk: localhost:2181(CONNECTED) 4] create /servers servers Created /servers 2.服务器端向zookeeper注册代码 public class DistributeServer {private String connectString kk01:2181,kk02:2181,kk01:2181;private int sessionTimeout 2000;private ZooKeeper zk;public static void main(String[] args) {DistributeServer server new DistributeServer();try {// 1.获取zk连接server.getConnect();// 2.注册服务器到zk集群server.regist(args[0]);// 3.业务逻辑因为是演示所以睡眠即可server.business();} catch (IOException e) {e.printStackTrace();} catch (KeeperException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}private void business() throws InterruptedException {// 模拟业务逻辑Thread.sleep(Long.MAX_VALUE);}private void regist(String hostname) throws KeeperException, InterruptedException {zk.create(/servers/hostname, hostname.getBytes(),// CreateMode.EPHEMERAL_SEQUENTIAL 表示创建的是临时顺序节点ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);System.out.println(hostname is online);}private void getConnect() throws IOException {zk new ZooKeeper(connectString, sessionTimeout, new Watcher() {Overridepublic void process(WatchedEvent event) {}});} } 3.客户端获取到当前在线服务器列表并注册监听代码如下 public class DistributeClient {private String connectString kk01:2181,kk02:2181,kk01:2181;private int sessionTimeout 2000;private ZooKeeper zk;public static void main(String[] args) {DistributeClient client new DistributeClient();try {// 1.获取zk连接client.getConnect();// 2.监听 /server 下面子节点的增加和删除client.getServerList();// 3.业务逻辑因为是演示所以睡眠即可client.business();} catch (IOException e) {e.printStackTrace();} catch (KeeperException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}private void business() throws InterruptedException {// 模拟业务逻辑Thread.sleep(Long.MAX_VALUE);}private void getServerList() throws KeeperException, InterruptedException {ListString children zk.getChildren(/servers, true);ListString servers new ArrayList();for (String child : children) {byte[] data zk.getData(/servers/ child, false, null);servers.add(new String(data));}// 打印System.out.println(servers);}private void getConnect() throws IOException {zk new ZooKeeper(connectString, sessionTimeout, new Watcher() {Overridepublic void process(WatchedEvent event) {try {getServerList();} catch (KeeperException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}});} } 测试 1、在Linux上zk客户端命令行增加减少服务器 1启动 DistributeClient 客户端 即在idea上运行 2在kk01上的zk客户端 /servers 目录下创建 临时带序号节点 [zk: localhost:2181(CONNECTED) 11] create -e -s /servers/hadoop100 hadoop100 Created /servers/hadoop1000000000000 [zk: localhost:2181(CONNECTED) 12] create -e -s /servers/hadoop101 hadoop101 Created /servers/hadoop1010000000001 [zk: localhost:2181(CONNECTED) 13] create -e -s /servers/hadoop103 hadoop103 Created /servers/hadoop1030000000002 [zk: localhost:2181(CONNECTED) 18] ls /servers [hadoop1000000000000, hadoop1010000000001, hadoop1030000000002] 3观察idea控制台变化 [] [] [hadoop100] [hadoop101, hadoop100][hadoop101, hadoop100, hadoop103] 4执行删除操作删除部分节点 [zk: localhost:2181(CONNECTED) 19] delete /servers/hadoop1030000000002 [zk: localhost:2181(CONNECTED) 20] ls /servers [hadoop1000000000000, hadoop1010000000001] 5再次观察idea控制台变化 [hadoop101, hadoop100]2、在idea上操作增加减少服务器 1启动 DistributeClient客户端如果前面已经启动过了则忽略此步骤 2启动DistributeServer服务 ​ 在args[]数组传入 hadoop103 3观察idea控制台发现打印了如下信息 hadoop103 is online4在zkClient查询节点信息如下 [zk: localhost:2181(CONNECTED) 33] ls /servers [hadoop1000000000000, hadoop1010000000001, hadoop1030000000003]
http://www.sadfv.cn/news/211120/

相关文章:

  • 庄辉个人网站建设教学北京网站建设亿玛酷专注4
  • 怎么进成品网站后台烟台外贸网站建设公司
  • 做二手车的网站网页版聊天软件
  • 兰州网站建设lzwlxchtml个人网站源码
  • js网站开发视频教程珠海服务好的网站建设
  • 服务器怎么设置ip做网站济南做网站公司
  • 网络规划设计师教程pdf大连网站排名优化价格
  • 顺德网站建设收费标准wordpress 存储空间
  • 网站备案无前置审批文件wordpress怎样安装主题
  • 开发定制网站建设网站你认为需要注意哪些问题
  • 山东住房和建设庭网站网站添加文字大小
  • 网站透明导航代码wordpress开头空两格
  • 电商网站设计公司可去亿企邦网站登记备案
  • 茂名市住房和城乡建设局网站怎么自己做网站的优化
  • 龙岗网站建设icxun网站建设电话多少
  • 遵义公司网站搭建多少钱asp网站 seo
  • 长春网站推广网诚传媒盛成广告传媒做网站的
  • php 企业网站多少钱网站建设过程中需要注意的通用原则
  • 地方网站成本作文网app下载
  • 苏州网站建设制作方案怎么制作公众号教程
  • 网站 英语在网站上如何做天气预报栏
  • 中山建设工程有限公司宁波seo排名优化哪家好
  • 国内虚拟助手网站劳务公司logo设计图片
  • 网站建设 响应式 北京域名检测工具
  • 网站建站报价做金融必看网站
  • 软件工程课程设计课程网站建设网站开发维护面试
  • 宁夏建设银行网站端午节网页设计素材
  • 网站域名需icp备案吗拼团购物网站开发
  • 温州专业建站晋江市住房建设局网站
  • 西安做网站公司有哪些?哪个网站名片做的号