keepalived+mongo集群搭建高可用数据库集群

本文介绍了如何在3个节点上搭建mongo 3sharding集群,每个sharding包含1主1从1仲裁,并利用keepalived创建高可用的router节点。详细步骤包括配置mongo集群、生成keyfile、初始化config和sharding节点、配置router,以及部署keepalived集群以实现通过虚拟IP连接router,避免单点故障。
摘要由CSDN通过智能技术生成

本文环境mongo=3.4, keepalived=2.0.5, docker=1.8
本次采用三个节点,搭建mongo集群3sharding,每个sharding采用一主一从一仲裁, 其中搭建三个router节点,为防止application与mongo集群中router节点的连接出现单点故障,特搭建keepalived集群,通过虚拟ip连接三个节点上的router节点,application连接虚拟生成的虚拟ip。

搭建步骤详解
搭建mongo集群

https://docs.mongodb.com/manual/tutorial/deploy-shard-cluster/#deploy-a-sharded-cluster
建议搭建看一遍官方文档,写的非常详细

1、 配置文件

node1节点

version: '2.2'
services:
  configsrv:
    image: mongo:3.4
    command: mongod --keyFile /opt/keyfile --oplogSize 1024 --replSet configrs --port 27017 --configsvr --wiredTigerCacheSizeGB 5
    # command: mongod  --oplogSize 1024 --replSet configrs --port 27017 --configsvr --wiredTigerCacheSizeGB 5
    volumes:
      - /mnt/dataset/databases/mongo_meinian/configsrv208:/data/db
      - ./keyfile:/opt/keyfile
    healthcheck:
      test: "exit 0"
    ports:
      - "27020:27017"
    restart:
      always
    container_name:
      meinian_configsrv


  rs1_node:
    image: mongo:3.4
    command: mongod --keyFile /opt/keyfile --oplogSize 10240 --replSet rs1 --directoryperdb --port 27017 --shardsvr
    # command: mongod  --oplogSize 10240 --replSet rs1 --directoryperdb --port 27017 --shardsvr
    volumes:
      - /mnt/dataset/databases/mongo_meinian/meinian_rs1_208:/data/db
      - ./keyfile:/opt/keyfile
    healthcheck:
      test: "exit 0"
    ports:
      - "27021:27017"
    restart:
      always
    container_name:
      meinian_rs1_node

  rs2_node:
    image: mongo:3.4
    command: mongod --keyFile /opt/keyfile --oplogSize 10240 --replSet rs2 --directoryperdb --port 27017 --shardsvr
    # command: mongod --oplogSize 10240 --replSet rs2 --directoryperdb --port 27017 --shardsvr
    volumes:
      - /mnt/dataset/databases/mongo_meinian/meinian_rs2_208:/data/db
      - ./keyfile:/opt/keyfile
    healthcheck:
      test: "exit 0"
    ports:
      - "27022:27017"
    restart:
      always
    container_name:
      meinian_rs2_node
rs3_arbiter:
    image: mongo:3.4
    command: mongod --keyFile /opt/keyfile --oplogSize 10240 --replSet rs3 --directoryperdb --port 27017 --shardsvr
    # command: mongod  --oplogSize 10240 --replSet rs3 --directoryperdb --port 27017 --shardsvr
    volumes:
      - /mnt/dataset/databases/mongo_meinian/meinian_rs3_arb:/data/db
      - ./keyfile:/opt/keyfile
    healthcheck:
      test: "exit 0"
    ports:
      - "27023:27017"
    restart:
      always
    container_name:
      meinian_rs3_arbiter

  router:
    image: mongo:3.4
    command: mongos --keyFile /opt/keyfile --configdb configrs/192.168.1.208:27020,192.168.1.209:27020,192.168.1.210:27020
    # command: mongos --configdb configrs/192.168.1.208:27018,192.168.1.209:27018,192.168.1.210:27018
    ports:
      - "27024:27017"
    volumes:
      - /mnt/dataset/databases/mongo_meinian/meinian_router208:/data/db
      - ./keyfile:/opt/keyfile
    healthcheck:
      test: "exit 0"
    restart:
      always
    co
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值