【Mongodb】Docker安装Mongodb replica set集群

创建docker-compose文件

vi docker-compose.yml

version: '2'
services:
  db0:
    image: mongo
    restart: always 
    mem_limit: 4G
    volumes:
      - /workspace/mongo-alpha/db0:/data/db
      - /workspace/mongo-alpha/common:/data/common
    environment:
      TZ: Asia/Shanghai
    ports:
      - "27018:27017"
    command: mongod --replSet rs1
    links:
      - db1
      - db2

  db1:
    image: mongo
    restart: always 
    mem_limit: 4G
    volumes:
      - /workspace/mongo-alpha/db1:/data/db
      - /workspace/mongo-alpha/common:/data/common
    environment:
      TZ: Asia/Shanghai
    ports:
      - "27019:27017"
    command: mongod --replSet rs1

  db2:
    image: mongo
    restart: always 
    mem_limit: 4G
    volumes:
      - /workspace/mongo-alpha/db2:/data/db
      - /workspace/mongo-alpha/common:/data/common
    environment:
      TZ: Asia/Shanghai
    ports:
      - "27020:27017"
    command: mongod --replSet rs1

创建容器

在docker-compost.yml的相同路径下,执行docker-compose up -d,这样使用docker ps就可以看到有三个容器启动,选择一个容器进入docker exec -it containerid bash

priority:2 为权重

192.168.0.3 需要改成外网

可以添加选举的机器主要用作投票的呀{“_id”: 3, “host”: “arbiter001:27017”, “arbiterOnly”: true}

mongo

use admin

config = {
  "_id" : "rs1",
  "members" : [
      {
          "_id" : 0,
          "host" : "192.168.0.3:27018",
          "priority":2
      },
      {
          "_id" : 1,
          "host" : "192.168.0.3:27019"
      },
      {
          "_id" : 2,
          "host" : "192.168.0.3:27020"
      }
  ]
}

rs.initiate(config)

此时可以使用rs.status()查看集群信息,rs.isMaster()查看当前节点是否是主节点

代码中连接:

spring.data.mongodb.uri=mongodb://192.168.0.3:27018,192.168.0.3:27019,192.168.0.3:27020/mydb?slaveOk=true&replicaSet=rs1&write=1&readPreference=secondaryPreferred&connectTimeoutMS=300000

navicat premium连接:使用master节点就行了(任意节点也行)

demo:https://github.com/ciweigg2/springboot-mongodb


文章作者: Ciwei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ciwei !
 上一篇
一键抠图软件 一键抠图软件
一键抠图:https://www.remove.bg/upload document.querySelectorAll('.github-emoji') .forEach(el => {
2019-10-18
下一篇 
【Mongodb】Docker安装Mongodb shard集群 【Mongodb】Docker安装Mongodb shard集群
MongoDB分片介绍分片机制提供了如下三种优势 1.对集群进行抽象,让集群“不可见” MongoDB自带了一个叫做mongos的专有路由进程。mongos就是掌握统一路口的路由器,其会将客户端发来的请求准确无误的路由到集群中的一个或者一
2019-10-16
  目录