MongoDB伪分布式部署(mac M2)

1. 序言

  • 本博客是上一博客的进阶版:mac M2安装单机版 MongoDB 7.x,上一博客可以看做是单机、单节点部署MongoDB
  • 本博客将介绍单机、多服务部署MongoDB,实际就是伪分布式部署

2. 副本集(Replica Set)方式部署

2.1 什么是副本集?

  • 多节点部署、主从部署等其实都是为了 MongoDB 的高可用,支持数据多副本、读写分离等
  • 较新版本的MongoDB Master/slave 被废弃,通过副本集提供高可用和数据冗余
    "msg":"Master/slave replication is no longer supported"
    
  • 一个副本集由多个节点组成,其中一个节点是主节点(Primary),其余是从节点(Secondary)
  • 主节点处理所有的写操作,从节点复制主节点的数据并可以处理读操作(如果启用了读偏好)
  • 副本集的特点:
    • 高可用性: 如果主节点发生故障,从节点会自动选举一个新的主节点。
    • 数据冗余:数据在多个节点上复制,提供数据冗余。
    • 读扩展:可以配置从节点处理读操作,以减轻主节点的负载。

2.2 副本集部署

2.2.1 启动3个MongoDB服务

  • 在本机以前台进程的方式启动3个 MongoDB 服务,且指定副本集为 rs0

    mongod --replSet rs0 --dbpath /Users/bytedance/mongodb11/data --port 27031 --bind_ip_all
    
    mongod --replSet rs0 --dbpath /Users/bytedance/mongodb12/data --port 27032 --bind_ip_all
    
    mongod --replSet rs0 --dbpath /Users/bytedance/mongodb13/data --port 27033 --bind_ip_all
    
  • 如果想通过配置文件部署,服务1的配置文件如下

    # 数据存储相关配置
    storage:
      dbPath: /Users/bytedance/mongodb2/data
      journal:
        enabled: true
    
    # 网络相关配置
    net:
      port: 27030
      bindIp: 0.0.0.0  # 允许从所有IP地址访问
    
    # 副本集相关配置
    replication:
      replSetName: "rs0"
    
    # 日志相关配置
    systemLog:
      destination: file
      logAppend: true
      logRotate: rename
      path: /Users/xxx/mongodb11/log/mongo.log
    
    # 进程管理相关配置
    processManagement:
      fork: true  # 以守护进程方式运行(后台运行)
    
    # 安全相关配置
    security:
      authorization: disabled  # 关闭用户认证
    

2.2.2 初始化副本集

  • 通过mongosh登录访问其中一个服务:

    mongosh --port 27032
    
  • 执行如下命令初始化副本集合:

    rs.initiate({
         
      _id: "rs0",
      members: [
        {
          _id: 0, host: "localhost:27031" },
        {
          _id: 1, host: "localhost:27032" },
        {
          _id: 2, host: "localhost:27033" }
      ]
    })
    
  • 执行rs.status() 验证副本集状态

    rs0 [direct: primary] test> rs.status()
    {
         
      set: 'rs0',
      ... # 其他信息省略
      members: [
        {
         
          _id: 0, # initiate 时指定的id
          name: 'localhost:27031',
          health: 1,
          state: 2,
          stateStr: 'SECONDA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值