千家信息网

M3DB集群安装笔记

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,介绍最简单的docker方式安装就不介绍了,这里讲一下我在装m3db单机多实例集群时遇到的问题和爬坑过程用途为了搭配exporter + prometheus + grafana使用,promethe
千家信息网最后更新 2025年02月07日M3DB集群安装笔记

介绍

最简单的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 &
数据节点

这里附上第一个节点的配置文件,需要注意的地方我会在下面用注释的方式指出

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数据目录
数据 存储 集群 方式 架构 作用 实例 节点 服务 配置 单机 文件 方案 支持 运行 复杂 很大 相似 一致 一致性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 泗洪龙飞软件开发工作室 魔兽怀旧服务器多少个 提高服务器开机速度 网络安全执法技术是做什么 成都机器视觉软件开发 福建工程项目管控软件开发平台 软件开发和设计那个难 财务办公室服务器 kafka服务器配置文件 服务器随机文件有哪些 常州途畅互联网科技有限公司 转系计算机网络技术申请书 百态网络技术服务 怎么把mysql数据库地址 主备份服务器的实现 信科专业考研考软件开发与测试 明基医院网络安全招标 华为nce管理服务器 浅析保险科技对互联网保险的影响 网络安全志愿者报名审核需要多久 软件开发复试会提哪些问题 吴忠市软件开发公司报价多少 网络安全知识100 网络安全知识的动画 中国网络安全母服务器 数据库的日期时间类型名是什么 网络配置错误无法连接到服务器 广州亚马逊网络技术有限公司 明基医院网络安全招标 电脑服务器一直断开又连接
0