M3DB集群安装笔记
介绍
最简单的docker方式安装就不介绍了,这里讲一下我在装m3db单机多实例集群时遇到的问题和爬坑过程
创新互联是一家专注于成都网站设计、成都做网站与策划设计,猇亭网站建设哪家好?创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:猇亭等地区。猇亭做网站价格咨询:13518219792
用途
为了搭配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 &
数据节点
这里附上第一个节点的配置文件,需要注意的地方我会在下面用注释的方式指出
coordinator:
listenAddress:
type: "config"
value: "0.0.0.0:7201" # 交互端口
local:
namespaces:
- namespace: default # 数据要存入的表
type: unaggregated # 数据类型
retention: 48h # 数据保存时间
metrics: # coordinator本身的metric
scope:
prefix: "coordinator"
prometheus:
handlerPath: /metrics
listenAddress: 0.0.0.0:7203 # until https://github.com/m3db/m3/issues/682 is resolved
sanitization: prometheus
samplingRate: 1.0
extended: none
tagOptions:
# Configuration setting for generating metric IDs from tags.
idScheme: quoted # 这个必须
db:
logging:
level: info
metrics:
prometheus:
handlerPath: /metrics
sanitization: prometheus
samplingRate: 1.0
extended: detailed
hostID: # 这里实测后,其实可以理解为nodeID
resolver: config # 单机多实例,这里必须设置为config,从文件中读取
value: node1 # 这个实例的Id
config: # config段的配置都是和etcd相关的
service:
env: default_env
zone: embedded
service: m3db # 服务名。可以按照consul中的service进行理解
cacheDir: /data1/m3db/cache
etcdClusters:
- zone: embedded
endpoints:
- 127.0.0.1:2379
listenAddress: 0.0.0.0:9000
clusterListenAddress: 0.0.0.0:9001
httpNodeListenAddress: 0.0.0.0:9002
httpClusterListenAddress: 0.0.0.0:9003
debugListenAddress: 0.0.0.0:9004
client:
writeConsistencyLevel: majority # 写一致性级别
readConsistencyLevel: unstrict_majority
gcPercentage: 100
writeNewSeriesAsync: true
writeNewSeriesLimitPerSecond: 1048576
writeNewSeriesBackoffDuration: 2ms
bootstrap:
bootstrappers: # 启动顺序
- filesystem
- commitlog
- peers
- uninitialized_topology
fs:
numProcessorsPerCPU: 0.125
cache:
series:
policy: lru
postingsList:
size: 262144
commitlog:
flushMaxBytes: 524288
flushEvery: 1s
blockSize: 10m
queue:
calculationType: fixed
size: 2097152
fs:
filePathPrefix: /data1/m3db # m3dbnode数据目录
网页名称:M3DB集群安装笔记
网站链接:http://myzitong.com/article/igsjeh.html