【ZooKeeper Notes 25】ZooKeeper运维之使用SnapshotFormatter可视化快照数据

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介:

在ZooKeeper的运维过程中,我们经常会碰到这样的问题,就是快照数据文件越来越大,但是ZooKeeper上的数据节点数量并没有相应的增加。

这说明什么问题:一定是有客户端在将ZooKeeper当数据库使用了。长此以往,必然会引起ZooKeeper内存数据过大而影响性能及集群间的数据同步。

那么有没有办法能够排查此类问题呢?解决方法是有的,我们首先需要使用SnapshotFormatter可视化快照数据。

数据快照机制是ZooKeeper用来定时进行内存全量数据dump,每次数据快照都会生成磁盘上的一个snapshot文件,例如:snapshot.300000007。

但是令人沮丧的是,这个文件是二进制格式的,无法看出任何有意义的数据信息。

幸好,ZooKeeper提供给我们一个可视化快照数据的工具:SnapshotFormatter

使用方法如下

java  SnapshotFormatter 快照数据文件

例如我们对上面提到的事务日志对应的快照数据文件进行可视化转换:

java SnapshotFormatter snapshot.300000007

输出内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ZNode Details (count= 7 ):
----
/
   cZxid =  0x00000000000000
   ctime = Thu Jan  01  08 : 00 : 00  CST  1970
   mZxid =  0x00000000000000
   mtime = Thu Jan  01  08 : 00 : 00  CST  1970
   pZxid =  0x00000300000003
   cversion =  2
   dataVersion =  0
   aclVersion =  0
   ephemeralOwner =  0x00000000000000
   dataLength =  0
----
/test_log
   cZxid =  0x00000300000003
   ctime = Tue Sep  03  07 : 08 : 40  CST  2012
   mZxid =  0x00000300000004
   mtime = Tue Sep  03  08 : 13 : 54  CST  2012
   pZxid =  0x00000300000006
   cversion =  1
   dataVersion =  1
   aclVersion =  0
   ephemeralOwner =  0x00000000000000
   dataLength =  2
----
……


从上面的输出中,我们就可以看到ZooKeeper上的所有节点信息了,其中会看到有个dataLength属性,这个就是该数据节点的数据大小了。排序就可以排查出异常节点了。



本文转自 nileader 51CTO博客,原文链接:http://blog.51cto.com/nileader/983259,如需转载请自行联系原作者


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
19天前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
31 1
|
3月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
90 1
|
5月前
|
缓存 运维 监控
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
|
5月前
|
运维 监控 数据可视化
"揭秘Docker管理神器Portainer:一键解锁Docker可视化管理新境界,让你的运维工作轻松又高效!"
【8月更文挑战第11天】Docker简化了应用部署与管理,但容器规模增大时,高效管理变得挑战重重。Portainer作为轻量级Docker管理工具,以直观界面和全面功能脱颖而出。它不仅简化了容器的创建、监控与操作,还涵盖了镜像、网络、卷管理及用户权限控制。Portainer易于部署,兼容单机与Swarm集群,降低学习门槛。本文深度剖析Portainer优势,并通过实例展示其实用性,使读者对其功能与价值有深刻理解。
140 3
|
6月前
|
消息中间件 存储 Kafka
kafka 在 zookeeper 中保存的数据内容
kafka 在 zookeeper 中保存的数据内容
65 3
|
6月前
|
运维
开发与运维数据问题之LangChain增强大语言模型的能力如何解决
开发与运维数据问题之LangChain增强大语言模型的能力如何解决
52 1
|
6月前
|
API 运维
开发与运维数据问题之LangChain帮助处理长篇报告如何解决
开发与运维数据问题之LangChain帮助处理长篇报告如何解决
79 1
|
6月前
|
API 数据库 运维
开发与运维数据问题之LangChain通过Memory工具类提供记忆功能如何解决
开发与运维数据问题之LangChain通过Memory工具类提供记忆功能如何解决
55 0
|
6月前
|
存储 搜索推荐 索引
开发与运维数据问题之Retrievers在LangChain中扮演角色如何解决
开发与运维数据问题之Retrievers在LangChain中扮演角色如何解决
37 0
|
3月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
82 4

热门文章

最新文章