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

简介: 微服务引擎MSE面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持Nacos/ZooKeeper/Eureka)、云原生网关(原生支持Ingress/Envoy)、微服务治理(原生支持Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。

背景

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

image.png

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

推送轨迹功能介绍

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

Path 查询维度

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

image.png

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

Session查询维度

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

image.png

Zookeeper推送轨迹最佳实践

  1. 登录MSE管理控制台
  2. 在顶部菜单栏选择地域。
  3. 在左侧菜单栏选择注册配置中心 > 实例列表。单击目标实例名称或操作列下方的管理
  4. 根据应用场景,对需要排查的 Znode 或者 Client SessionID 进行推送轨迹查询

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

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

image.png

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

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

image.png

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

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

image.png

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

image.png

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

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


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

image.png

相关文章
|
人工智能 云计算
在技术的浪潮中寻找自我
技术,如同潮水般涌动,带来了前所未有的变革。它改变了我们的生活方式、工作方式,甚至是思考方式。在这股浪潮中,我试图寻找自我,探索技术与个人成长之间的微妙关系。我发现,技术不仅仅是工具,更是一面镜子,映照出我们的渴望、恐惧和梦想。通过与技术的互动,我开始理解自己,也开始塑造自己。
151 28
|
分布式计算 JavaScript 前端开发
JS中数组22种常用API总结,slice、splice、map、reduce、shift、filter、indexOf......
JS中数组22种常用API总结,slice、splice、map、reduce、shift、filter、indexOf......
470 0
|
资源调度 开发者
Vue2选择器(Select)
这是一个基于Vue3的选择器组件(VueAmazingSelector),已在npm上发布,方便快捷地通过`yarn add vue-amazing-selector`进行安装。此组件允许全局或局部注册,并提供了丰富的自定义属性,如选项数据、选择器文本字段名、值字段名、默认文字、禁用状态、清除功能等。同时,它还支持调整选择框的尺寸和下拉项数量,并附有详细的使用示例和代码片段,便于开发者快速集成和定制。
296 1
Vue2选择器(Select)
|
机器学习/深度学习 算法 vr&ar
南大最新综述论文:基于模型的强化学习
南大最新综述论文:基于模型的强化学习
618 0
|
分布式计算 Hadoop Java
面向开发者的Hadoop编程指南
【8月更文第28天】Hadoop是一个开源软件框架,用于分布式存储和处理大规模数据集。它由Hadoop分布式文件系统(HDFS)和MapReduce编程模型组成。本指南旨在帮助初学者和中级开发者快速掌握Hadoop的基本概念和编程技巧,并通过一些简单的示例来加深理解。
548 0
|
存储 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 关闭Linux系统中的交换空间 swapoff命令使用教程
【Shell 命令集合 磁盘维护 】Linux 关闭Linux系统中的交换空间 swapoff命令使用教程
464 1
|
人工智能 搜索推荐 机器人
AI发展已经一段时间了,当前社会身边哪些功能已经在运用了AI技术?未来AI技术还将有哪些地方会运用?
AI技术现已被广泛应用在智能家居(如自动化控制与安全)、个性化教育(定制化学习与辅助教学)、精准医疗(疾病诊断与药物研发)、智能服务(如智能客服)和金融服务(风险评估)等领域。未来,预计AI将在AI PC、人机协创、超级视野、机器人和零搜索等领域发挥更大作用,实现信息主动推送、无缝沟通和创新服务。随着技术进步,AI将持续影响并改变我们的生活。【6月更文挑战第2天】
846 0
|
弹性计算 安全 Linux
阿里云ECS Linux系统漏洞修复详细教程
阿里云ECS Linux系统漏洞修复详细教程
|
XML IDE Java
JAVA多线程以及Spring异步注解@Async
JAVA多线程以及Spring异步注解@Async
806 1
|
机器学习/深度学习 Java Nacos
Nacos实战之配置中心与注册中心详解
Nacos实战之配置中心与注册中心详解
Nacos实战之配置中心与注册中心详解

热门文章

最新文章