数据变更白屏化利器-推送轨迹上线

本文涉及的产品
云原生网关 MSE Higress,422元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
可观测可视化 Grafana 版,10个用户账号 1个月
简介: MSE Zookeeper 最新上线推送轨迹能力,提供变更历史,变更推送记录,查询记录回溯能力,助力用户排查配置注册中心推送,变更回溯等难题。

作者:子葵


背景


Zookeeper 可作为注册配置中心,选主,分布式锁等多种场景,随着业务规模的扩大,业务之间的依赖关系逐渐变得复杂,在这种复杂的场景下如果遇到变更推送相关问题,排查起来相当困难,虽然 Zookeeper 原有的审计日志能够记录 Znode 的变更记录,但是无法查询到服务端对变更的推送记录,并且需要人工筛选,费时费力,长时间以来,用户对 Zookeeper 更丰富的推送功能的可观测性有了越来越强烈的需求。


1.png


MSE Zookeeper 最新上线推送轨迹能力,提供变更历史,变更推送记录,查询记录回溯能力,助力用户排查配置注册中心推送,变更回溯等难题。


推送轨迹功能介绍


Zookeeper 推送轨迹提供 Znode 变更和查询记录,以及服务端向客户端推送变更事件的记录,根据推送轨迹可以看到客户端的变更是否成功,以及变更成功后,服务端是否将变更事件推送到客户端,推送轨迹能够根据 Path 和 SessionID 两个维度查询到对应的日志记录。


Path 查询维度


提供对应的 Path 以及事件信息,即可查询对应的 Path 的变更记录:


2.png


推送轨迹详细展示了 Znode 变更的记录信息。在推送轨迹页面左侧,展示当前时间段内的 Znode 变更事件 ,点击左侧变更流水可以定位到右侧的变更及推送事件记录。页面右侧,展示当前时间段内的 Znode 变更及推送事件,变更事件中显示本次变更的类型,推送事件中展现推送发生事件,推送到的客户端 SessionID。鼠标上移推送详情图标可以查看本地推送的事件类型等详细信息。


Session 查询维度


在推送轨迹 Session 查询维度页面,展示该 Session 相关的推送轨迹变更时间表示本次 Znode 变更所发生的时间,变更事件表示本次 Znode 变更事件类型,Path 表示本次变更的 Znode Path,点击详情列信息按钮可以看到详情图标可以看到本次变更事件详细信息,点击详情列跳转按钮可以切换到 Path 维度查询的入口查询当前 Path 在该时间点的推送事件。


3.png


Zookeeper 推送轨迹最佳实践


1. 登录 MSE 管理控制台


2. 在顶部菜单栏选择地域。


3. 在左侧菜单栏选择注册配置中心 > 实例列表。单击目标实例名称或操作列下方的管理。


4. 根据应用场景,对需要排查的 Znode 或者 Client SessionID 进行推送轨迹查询


在微服务场景下,Zookeeper 经常被用作注册配置中心,常碰到的一个问题就是,ZooKeeper 在实例变化之后,实例信息更新的实效性问题,当我们需要排查 Zookeeper 是否将实例信息的变更或者配置信息的变更推送到客户端以及变更和推送的时间点和变更推送的状态时, 推送轨迹提供了这些信息的回溯能力。例如 Dubbo 场景中 ZooKeeper 作为注册中心,我们需要看到服务实例变更后,从 Zookeeper 获取的实例信息依然是旧的实例信息,此时我们可以通过以下步骤查找原因:


  • 首先可以在控制台找到对应的服务的 Path, 


4.png


  • 然后根据 Path 在推送轨迹中查询对应 Znode 的变更和查询记录 


例如我们需要知道 org.apache.dubbo.demo.DemoService 服务的变更推送记录,在推送轨迹,选择查询维度 路径,并在 Path 中输入 /dubbo/org.apache.dubbo.demo.DemoService/providers 查询对应的推送记录,根据客户端的 SessionID,可以查看对应的变更是否引起服务端推送变更事件,由此确定变更是否成功,变更成功后,对应的客户端是否成功收到服务端的变更事件推送,以及收到推送后是否向服务端进行查询,由此确定客户端是否更新本地的实例信息。


5.png


再例如配置中心场景下,我们常遇到的问题是客户端进行了配置变更,但是其他部分客户端并没有收到变更的推送,我们可以通过以下步骤查找原因:


  • 首先通过变更客户端的 SessionId 找到对应的变更记录,点击箭头按钮,跳转到此次变更对应的路径查询维度推送轨迹,确定配置变更是否成功。 


6.png


  • 跳转之后我们看到对应的变更记录的推送详情,此时我们可以确定没有收到变更的客户端是否在推送客户端的集合中,如果没有,则说明推送时客户端与服务端连接断开,导致 Session 超时被服务端摘掉了,如果事件被成功推送了,接下来查看客户端是否进行新配置的查询,如果没有查询,就需要从客户端进行排查。 


7.png


根据以上的排查就可以大致定位问题所在,推送轨迹大大地简化了问题排查的流程。


后续,注册和配置中心还将提供全新的自诊系统,包括事件统计、健康审计等功能,帮助用户更加全面的获取注册和配置中心运行时上更多的业务功能状态数据信息,降低注册和配置中心的问题排查难度、提升可用性。




99 大促活动:新客户包年 7 折,包月 8 折, 欢迎试用,有问题欢迎扫描钉钉二维码 (34754806)和我们交流~


8.png


相关文章
|
数据安全/隐私保护
【VBScript】vbs 错误未结束的错误字符串常量
【VBScript】vbs 错误未结束的错误字符串常量
241 0
|
运维 数据可视化 安全
阿里巴巴DevOps实践指南(二十三)| 编排运维
面向编排的运维是指用户(PaaS 服务以及开发、运维、运营等角色)根据实际业务需要,对多个原子组件通过简单编排的方式进行灵活装配,构造出不同的业务流程以便完成一个完整的运维需求。运维编排可以帮助我们更好地规范、管理和执行自动化运维操作,以模板的方式定义所需要进行的操作,然后再通过系统运行,从而提高整体运维操作的效率、增强运维操作的安全性,并避免人工运维的错误。
阿里巴巴DevOps实践指南(二十三)| 编排运维
|
机器学习/深度学习 运维 Prometheus
构建高效运维体系:从自动化部署到智能监控的全方位实践
在当今数字化时代,企业对运维效率和稳定性的要求越来越高。本文将探讨如何构建一个高效的运维体系,从自动化部署、持续集成与持续交付(CI/CD)、智能监控、故障管理以及数据驱动决策等方面进行深入分析和实践指导。通过这些方法,企业可以实现更快速、更可靠的软件发布和问题解决,提升整体运营效率。
|
运维 监控 Kubernetes
揭秘运维开发:如何让你的系统更高效、更可靠?
揭秘运维开发:如何让你的系统更高效、更可靠?
|
网络协议 网络架构
ensp中默认路由和静态路由实验
默认路由的作用是将无法匹配路由表中其他路由表项的数据包转发到指定下一跳路由器。在实际网络中,默认路由通常用于简化路由配置,通常在网络边缘的路由器上配置 静态路由的作用是将特定网络的数据包转发到指定下一跳路由器。在实际网络中,静态路由通常用于更精细地控制数据包的转发,通常在网络核心路由器上配置。
597 6
ensp中默认路由和静态路由实验
|
XML 设计模式 Java
PowerMock的静态方法与私有方法怎么测试?
**PowerMock**是Java单元测试中的增强工具,扩展了Mockito,支持模拟静态方法、构造函数、私有方法和final类,促进更高测试覆盖率。它用于隔离依赖,测试静态方法和私有方法。常见问题包括配置复杂性、过度使用、忽略真实行为模拟和最佳实践。解决方案包括遵循官方文档、谨慎使用、精确模拟和测试后清理。示例展示了如何模拟静态方法,通过添加PowerMock依赖和使用`@RunWith(PowerMockRunner.class)`、`@PrepareForTest`注解,以及`PowerMockito.mockStatic()`进行静态方法模拟。
399 0
|
开发框架 运维 Cloud Native
KubeNest - 运维特征(Trait)配置化开发框架设计及实践
Trait配置化开发框架,提供了云原生应用在不同运行环境下使用不同运维能力可插拔架构,同时该框架首创去Operator的开发模式(配置化),能够极大缩短开发人员学习、开发成本,提高运维效率,减少资源浪费,同时还能保障数据一致性、安全可靠。目前该方案已经经过双十一的验证,能够保障云原生应用的多云异构资源的部署运维稳定性。
600 2
KubeNest - 运维特征(Trait)配置化开发框架设计及实践
|
缓存 PHP Nacos
nacos常见问题之nacos点击下线提示报错如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
弹性计算 Cloud Native 安全
Gartner:云计算持续演进,加速企业上云进程
Gartner预测云计算的门槛将逐渐降低、生态化和差异化将成为主流、企业从上云, 即从传统的平台向云平台的迁移,开始进入“云原生”阶段,而专有云则成为中国市场的独有特色
|
存储 弹性计算 容灾
关于阿里云香港Region可用区C服务中断事件的说明
关于阿里云香港Region可用区C服务中断事件的说明
674 0