数据变更白屏化利器-推送轨迹上线
作者: 子葵
背景
Zookeeper 可作为注册配置中心,选主,分布式锁等多种场景,随着业务规模的扩大,业务之间的依赖关系逐渐变得复杂,在这种复杂的场景下如果遇到变更推送相关问题,排查起来相当困难,虽然 Zookeeper 原有的审计日志能够记录 Znode 的变更记录,但是无法查询到服务端对变更的推送记录,并且需要人工筛选,费时费力,长时间以来,用户对 Zookeeper 更丰富的推送功能的可观测性有了越来越强烈的需求。
文章图片
MSE Zookeeper 最新上线推送轨迹能力,提供变更历史,变更推送记录,查询记录回溯能力,助力用户排查配置注册中心推送,变更回溯等难题。
推送轨迹功能介绍
Zookeeper 推送轨迹提供 Znode 变更和查询记录,以及服务端向客户端推送变更事件的记录,根据推送轨迹可以看到客户端的变更是否成功,以及变更成功后,服务端是否将变更事件推送到客户端,推送轨迹能够根据 Path 和 SessionID 两个维度查询到对应的日志记录。
Path 查询维度
提供对应的 Path 以及事件信息,即可查询对应的 Path 的变更记录:
文章图片
推送轨迹详细展示了 Znode 变更的记录信息。在推送轨迹页面左侧,展示当前时间段内的 Znode 变更事件 ,点击左侧变更流水可以定位到右侧的变更及推送事件记录。页面右侧,展示当前时间段内的 Znode 变更及推送事件,变更事件中显示本次变更的类型,推送事件中展现推送发生事件,推送到的客户端 SessionID。鼠标上移推送详情图标可以查看本地推送的事件类型等详细信息。
Session 查询维度
在推送轨迹 Session 查询维度页面,展示该 Session 相关的推送轨迹 。变更时间表示本次 Znode 变更所发生的时间,变更事件表示本次 Znode 变更事件类型,Path 表示本次变更的 Znode Path,点击详情列信息按钮可以看到详情图标可以看到本次变更事件详细信息,点击详情列跳转按钮可以切换到 Path 维度查询的入口查询当前 Path 在该时间点的推送事件。
文章图片
Zookeeper 推送轨迹最佳实践
- 登录 MSE 管理控制台。
- 在顶部菜单栏选择地域。
- 在左侧菜单栏选择注册配置中心 > 实例列表。单击目标实例名称或操作列下方的管理。
- 根据应用场景,对需要排查的 Znode 或者 Client SessionID 进行推送轨迹查询
- 首先可以在控制台找到对应的服务的 Path,
文章图片
- 然后根据 Path 在推送轨迹中查询对应 Znode 的变更和查询记录
文章图片
再例如配置中心场景下,我们常遇到的问题是客户端进行了配置变更,但是其他部分客户端并没有收到变更的推送,我们可以通过以下步骤查找原因:
- 首先通过变更客户端的 SessionId 找到对应的变更记录,点击箭头按钮,跳转到此次变更对应的路径查询维度推送轨迹,确定配置变更是否成功。
文章图片
- 跳转之后我们看到对应的变更记录的推送详情,此时我们可以确定没有收到变更的客户端是否在推送客户端的集合中,如果没有,则说明推送时客户端与服务端连接断开,导致 Session 超时被服务端摘掉了,如果事件被成功推送了,接下来查看客户端是否进行新配置的查询,如果没有查询,就需要从客户端进行排查。
文章图片
根据以上的排查就可以大致定位问题所在,推送轨迹大大地简化了问题排查的流程。
后续,注册和配置中心还将提供全新的自诊系统,包括事件统计、健康审计等功能,帮助用户更加全面的获取注册和配置中心运行时上更多的业务功能状态数据信息,降低注册和配置中心的问题排查难度、提升可用性。
99 大促活动:新客户包年 7 折,包月 8 折, 欢迎试用,有问题欢迎扫描钉钉二维码 (34754806)和我们交流~
【数据变更白屏化利器-推送轨迹上线】
文章图片
推荐阅读
- 解决swiper动态数据加载在移动端下左右滑动不好使()
- database|17@MySQL数据库读现象详解(脏读、幻读、不可重复读)
- 数据库|03 | 浅谈mysql事务
- 分布式|百度现场面试(JVM+算法+Redis+数据库!(三面))
- 别再说你不会Mysql|《别再说你不会Mysql了》之“数据库和数据表的基本操作”
- 数据库|redis存储关系性数据库数据
- 数据库面试题|数据库面试题(Redis数据存储在哪里(如何保证数据持久化?))
- Linux|远程访问 Linux 服务器中的 redis 数据库(腾讯云服务器 CentOS 8.0)
- 数据库|dm数据库和mysql数据库之间的时间函数使用区别
- Unity3D|猿创征文|UnitySqlite持久化数据