介绍
简单的docker方式安装就不介绍了,这里讲一下我在装m3db单机多实例集群时遇到的问题和爬坑过程
用途
为了搭配exporter + prometheus + grafana使用,prometheus暂不支持分片。使用federate方式来做的话,架构比较复杂
m3db的优点:
- 可以分片,副本存储,这个比influxdb方案要好很多。
- 可以数据聚合存储,可以对前期的数据进行抽样聚合压缩降低存储空间
m3db的缺点
- 刚开源,资料比较少
- 配置操作比较麻烦。与我接触到的MySQL,Redis, MongoDB安装方式不太一样,但与之前维护的NDIR系统略有相似之处
为甚么不使用其他的方案:
- timescaleDB依赖PG数据库,安装和维护起来相对于我熟悉的MySQL差距很大。
- InfluxDB分片功能收费
- 其他的比较小众或者不同时支持数据读取和写入
架构
这里使用m3db官方网站上的架构图
- m3db的seedNode和其他数据存储节点的区别在于其内置运行ETCD服务
- etcd服务用于存储整个集群的元数据,类似于NDIR的zookeeper作用,也可也单独运行
- coordinator相当于整个集群的入口,类似于NDIR的IndexDispatcher的作用,类似于MongoDB的mongos的作用
安装
架构
元数据
首先我们下载etcd,然后执行就可以,这里我们暂时不使用集群
nohup ./etcd &> /dev/null &
数据节点
这里附上个节点的配置文件,需要注意的地方我会在下面用注释的方式指出
-