VictoriaMetrics集群模式的一些说明

如果看了官方介绍的话,VictoriaMetrics 对于集群的处理只有vmstorage 是有状态的,其他节点(vmselect,vminsert都是无状态的) 
但是一些细节上的目前官方没有很清晰的说明,以下是一些简单的说明

vmselect 以及vminsert 的storagenode 配置

VictoriaMetrics 集群模式在设计的时候区分了写以及读(当然很大程度上和prometheus remote protocol 有关系) 
默认:8400 为写入地址(即vminsert的网络存储连接端口),:8401 为读取地址(即vmselect的网络存储连接端口) 
实际上这个文档都是有写到的,而且cli 的帮助也有提示

vmstorage 数据写入的处理

目前目前看到的是支持多存储,直接配置多个就可以了,实际上数据的写入是有规则的 
大致的流程是基于一致性hash算法,同时当出现存储故障的时候也会尝试写入可用的存储,数据的存储是结合用户以及项目id还有label 
基于xxhash 算法选择后端存储,整体的一个原则就是可以保证有可用后端存储的时候数据是可以写入的

vmstorage 数据读取的处理

这个如果按照包含故障的模式就稍有复杂了,因为可能存在存储不可能的时候的数据查询处理,但是vmselect简化了查询,获取查询发送到所有可用的vmstorage节点,然后合并去重,这样就简单好多了

参考资料

https://github.com/VictoriaMetrics/VictoriaMetrics/blob/cluster/app/vminsert/netstorage/insert_ctx.go#L169 
https://github.com/VictoriaMetrics/VictoriaMetrics/blob/cluster/app/vmselect/README.md

posted on   荣锋亮  阅读(1516)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-05-22 rpmlint 方便的rpm spec 以及rpm 文件检查工具
2019-05-22 linux patch 简单学习
2019-05-22 rpm 简单 package 创建demo
2019-05-22 fio 文件系统io 性能测试安装使用
2019-05-22 保护 SSH 的三把锁
2019-05-22 redis 设置为只读模式

导航

< 2025年3月 >
23 24 25 26 27 28 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 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示