zookeeper创建节点

简介: 本文通过Dubbo源码解析,深入讲解服务提供者失效踢出的实现原理,结合ZooKeeper的临时节点机制,揭示其与客户端会话绑定的生命周期特性,并以分布式协调场景为例,阐明该设计在实际应用中的价值。

前言

在之前dubbo源码解析-本地暴露中的前言部分提到了两道高频的面试题,其中一道dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者还能通信吗?在上周的dubbo源码解析-zookeeper连接中已经讲到,这周解析的是另一道,即服务提供者能实现失效踢出是根据什么原理?

上周就有朋友问到我,为什么我的源码解析总是偏偏要和面试题挂上钩呢?原因很简单

1.dubbo源码这么多,试问你从哪里做为切入点?也就是说该从哪里看起?所以以面试题为切入点,你可以理解为我是在回答"怎么看源码"这个问题.

2.我们研发飞机大炮并不是为了侵略,有时候可能只是单纯的想保护自己.

3.我的源码解析虽然以面试题为基础,但却不以面试为目的.因为面试如果问到dubbo的问题,绝大多数都是官方文档的内容,根本就没到需要看源码的程度.看源码的最终目的是为了解决实际问题,后面我会以实际的问题为例子,实战讲一讲看源码我究竟解决了什么网上搜不到,必须要看源码才能弄清楚的问题.所以现在就可以大胆在简书关注肥朝,已免后面错过精彩内容.

插播面试题

  • 服务提供者能实现失效踢出是什么原理(高频题)

实际是依赖于ZK节点分:持久/临时节点,失效踢出就是临时节点到期自动失效的具体表现

  • zookeeper的有哪些节点,他们有什么区别?讲一下应用场景

直入主题

同上周的zookeeper连接一样,这周我们讲的还是一行代码,如下图


那么我们打上断点开始

下面就要开始创建节点了

现在我们虽然看完源码了,但是还是没法回答面试题?那么下面就要敲黑板划重点了

敲黑板画重点

zookeeper中节点是有生命周期的.具体的生命周期取决于节点的类型.节点主要分为持久节点(Persistent)临时节点(Ephemeral),但是更详细的话还可以加上时序节点(Sequential),创建节点中往往组合使用,因此也就是4种.

  • 持久节点
  • 持久顺序节点
  • 临时节点
  • 临时顺序节点

其实不要纠结于分为几种,这就和语文的断句一样,你断句的方法不同,断出来的结果也不同.那么我们主要讲讲持久节点临时节点的区别

持久节点

所谓持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动清除这个节点,也就是说不会因为创建该节点的客户端会话失效而消失

临时节点

临时节点的生命周期和客户端会话绑定,也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉

应用场景

zookeeper常用的应用场景我在上周已经画了思维导图,这里就不重复展示了.就拿分布式协调/通知来举例(这个例子既是在回答第一个面试题,也是在回答第二个面试题).

在分布式系统中,我们常常需要知道某个机器是否可用,传统的开发中,可以通过Ping某个主机来实现,Ping得通说明对方是可用的,相反是不可用的,ZK 中我们让所有的机其都注册一个临时节点,我们判断一个机器是否可用,我们只需要判断这个节点在ZK中是否存在就可以了,不需要直接去连接需要检查的机器,降低系统的复杂度

相关文章
|
存储 网络安全 网络架构
网络技术基础(5)——VRP和telnet
VRP(Versatile Routing Platform)是其数据通信产品的操作系统,支持路由器和交换机的高效运行,提供统一用户界面和控制平面功能。VRP通过组件化结构实现功能裁剪和扩展。设备初始化时,BootROM先启动,然后运行系统软件,从默认路径读取配置文件。管理设备可通过命令行或Web网管,命令行包括用户界面和级别控制,提供权限管理。文件系统管理涉及存储设备如SDRAM、Flash、NVRAM等。用户可使用 PuTTY 工具通过Console口本地登录,或通过SSH远程登录。VRP命令行具有编辑和在线帮助功能,提供undo命令恢复默认设置。
|
3月前
|
缓存
QLExpress使用及源码分析
本文介绍基于QLExpress的规则引擎实现方案,涵盖实体构建、接口定义与脚本编写。通过@QLAlias注解映射字段别名,结合YAML配置规则表达式,实现逻辑解耦。运行时动态解析AST语法树,支持汉化变量与上下文绑定,并提供缓存与延迟执行机制,提升性能与灵活性。
87 0
QLExpress使用及源码分析
|
3月前
|
人工智能 机器人 Java
黑马最新项目
AIGC项目涵盖大模型私有化部署、聊天机器人、RAG知识库及代码提示工具;天机AI集成SpringAI与多模型工作流;云岚到家聚焦微服务与分布式架构;四方保险构建统一支付与时序数据应用;星辰WMS与Dify项目即将发布。
177 0
黑马最新项目
|
3月前
|
canal 缓存 关系型数据库
微服务原理篇(Canal-Redis)
本文介绍了ES索引同步的常见方案,重点讲解Canal+MQ数据同步机制。通过解析MySQL的binlog日志,Canal模拟slave伪装接入主库,实现增量数据捕获,并结合RabbitMQ保证消息顺序性地同步至Elasticsearch。同时探讨了缓存一致性问题,提出使用分布式锁(如Redis)控制并发写操作,避免双写不一致。还涵盖Redis持久化、集群模式、过期淘汰策略及缓存三剑客(穿透、雪崩、击穿)的解决方案,系统梳理了高并发场景下的数据同步与缓存保障技术体系。
175 0
 微服务原理篇(Canal-Redis)
|
3月前
|
XML 算法 安全
详解RAG五种分块策略,技术原理、优劣对比与场景选型之道
RAG通过检索与生成结合,提升大模型在企业场景的准确性与可控性。分块策略是其核心,直接影响检索效果与生成质量。本文系统解析五种主流分块方法:固定大小、语义、递归、基于结构及LLM分块,对比其优缺点与适用场景,并提出组合优化建议,助力构建高效、可信的RAG系统。
191 0
|
3月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍使用Arthas排查Java应用CPU占用过高问题的完整流程,涵盖线程分析、阻塞定位、watch命令追踪异常、jad反编译实现热更新及火焰图分析,实现无需重启应用的高效故障排查与代码修复。
135 0
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型专业名词解释手册
本手册由油炸小波设计提示词、Manus创作,系统梳理大语言模型核心概念,涵盖基础原理、训练技术、优化压缩、推理应用、评估调试及伦理安全六大模块,深入浅出解析LLM关键技术术语。
399 0
|
7月前
|
人工智能 弹性计算 大数据
和五所高校一起,我们共同打造了一门 AI 课程!
阿里云、超星尔雅协同北京大学、南京大学、复旦大学、上海交通大学、浙江大学五所高校名师,共同推出的 AI 通识公益系列课程「动手学 AI:人工智能通识与实践」将于 9月 1 日面向全国所有高校、所有专业的师生正式开放。
606 5
|
3月前
|
机器学习/深度学习 人工智能 数据可视化
构建AI智能体:六十四、模型拟合的平衡艺术:深入理解欠拟合与过拟合
机器学习模型训练中存在欠拟合和过拟合两大核心问题。欠拟合指模型过于简单无法捕捉数据规律,表现为训练和测试误差均高;过拟合则是模型过于复杂导致记忆噪声而非规律,表现为训练误差低但测试误差高。解决欠拟合需增加模型复杂度(如多项式回归、决策树)或改进特征工程;解决过拟合则需限制复杂度(如降低树深度)、增加正则化或使用集成方法。MSE是关键的评估指标,良好拟合表现为训练集和测试集MSE均适中且接近。掌握这一平衡艺术是构建泛化能力强、稳健模型的关键。
684 16
|
3月前
|
人工智能 自然语言处理 机器人
适合电商的智能客服系统推荐(2025年12月更新)
瓴羊Quick Service是阿里云旗下智能客服产品,深度整合电商交易链路,支持全渠道协同与大模型应用,具备高并发稳定性,助力中大型电商实现服务智能化与业务增长。