MongoDB复制集搭建

本文介绍了如何使用Docker快速搭建MongoDB复制集,包括准备工作、复制集成员配置、有仲裁节点的设置。在复制集中,Primary节点负责读写,Secondary节点仅能读取,Arbiter节点用于选举。通过示例命令展示了节点的添加和删除,以及状态查询,强调了在主节点故障时的自动选举机制。
摘要由CSDN通过智能技术生成

前言

最开始使用MongoDB作为NoSQL数据库的时候,使用的是单节点,后面随着业务量增加,引入了集群模式,最初引入的是ReplicaSet。刚开始使用的时候还好,后面却发现了性能上还是有瓶颈,尤其在写数据方面比较的明显。后面深入研究了一下,发现原来真正高性能的是Shared Cluster,因为做了数据分片的缘故,单机的数量量更小,读写性能也就越高。然而我们使用的ReplicaSet只是Master-Slave模式,所有的节点上的数据仍然是一致的,同时因为需要保证一致性,事务是多进程之间同步等待的,因此并不能从根本上解决海量数据高并发的问题。不过ReplicaSet依然是比较好的容灾策略,这里可以简单演示一下如何搭建。

准备工作

这里可以使用虚拟机,但我觉得作为一个Demo来讲虚拟机还是太麻烦,就使用了docker,其中docker-compose可以很方便的在一台机器上把集群搭建起来。

docker-compose.yml

version: '3'
services:
  mongo_node_1:
    image: mongo:latest
    container_name: mongo_node_1
    ports:
      - 27017:27017
    volumes:
      - ./node_1/data:/data/db
      - ./node_1/log:/var/log/mongodb
      - ./node_1/mongo-entrypoint/:/docker-entrypoint-initdb.d/
      - ./node_1/mongod.conf:/etc/mongod.conf
    entrypoint: ["mongod","--config","/etc/mongod.conf"]
  mongo_node_2:
    image: mongo:latest
    container_name: mongo_node_2
    ports:
      - 27018:27017
    volumes:
      - ./node_2/data:/data/db
      - ./node_2/log:/var/log/mongodb
      - ./node_2/mongo-entrypoint/:/docker-entrypoint-initdb.d/
      - ./node_2/mongod.conf:/etc/mongod.conf
    entrypoint: ["mongod","--config","/etc/mongod.conf"]
  mongo_node_3:
    image: mongo:latest
    container_name: mongo_node_3
    ports:
      - 27019
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值