• mongo微服务搭建


    (1)写了个yaml配置文件,可以再根据mongo参数增添,我的都没配置什么。

     [root@dev01 mongo]# cat mongo_cluster.yaml 

    version: '3'
    services:
      node1:
        container_name: node1
        image: mongo
        networks:
          mongo:
            ipv4_address: 172.20.0.11
        ports:
          - 27018:27018
        volumes:
          - ./node1/data/db:/data/db
          - ./node1/data/configdb:/data/configdb
          - ./node1/data/backup:/data/backup
        command: --shardsvr --bind_ip_all
        restart: always
        depends_on:
          - config1
          - config2
          - config3
      node2:
        container_name: node2
        networks:
          mongo:
            ipv4_address: 172.20.0.12
        image: mongo
        ports:
          - 27028:27018
        volumes:
          - ./node2/data/db:/data/db
          - ./node2/data/configdb:/data/configdb
          - ./node2/data/backup:/data/backup
        command: --shardsvr --bind_ip_all
        restart: always
        depends_on:
          - config1
          - config2
          - config3
      node3:
        container_name: node3
        networks:
          mongo:
            ipv4_address: 172.20.0.13
        image: mongo
        ports:
          - 27038:27018
        volumes:
          - ./node3/data/db:/data/db
          - ./node3/data/configdb:/data/configdb
          - ./node3/data/backup:/data/backup
        command: --shardsvr --bind_ip_all
        restart: always
        depends_on:
          - config1
          - config2
          - config3
      config1:
        container_name: config1
        networks:
          mongo:
            ipv4_address: 172.20.0.14
        image: mongo
        ports:
          - 27019:27019
        volumes:
          - ./config1/data/db:/data/db
          - ./config1/data/configdb:/data/configdb
        command: --configsvr --replSet "config_server" --bind_ip_all
        restart: always
      config2:
        container_name: config2
        networks:
          mongo:
            ipv4_address: 172.20.0.15
        image: mongo
        ports:
          - 27029:27019
        volumes:
          - ./config2/data/db:/data/db
          - ./config2/data/configdb:/data/configdb
        command: --configsvr --replSet "config_server" --bind_ip_all
        restart: always
      config3:
        container_name: config3
        networks:
          mongo:
            ipv4_address: 172.20.0.16
        image: mongo
        ports:
          - 27039:27019
        volumes:
          - ./config3/data/db:/data/db
          - ./config3/data/configdb:/data/configdb
        command: --configsvr --replSet "config_server" --bind_ip_all
        restart: always
      mongos1:
        container_name: mongos1
        networks:
          mongo:
            ipv4_address: 172.20.0.17
        image: mongo
        ports:
          - 27017:27017
        volumes:
          - ./mongos1/data/db:/data/db
          - ./mongos1/data/configdb:/data/configdb
        entrypoint: mongos
        command: --configdb config_server/172.20.0.14:27019,172.20.0.15:27019,172.20.0.16:27019 --bind_ip_all
        depends_on:
          - node1
          - node2
          - node3
      mongos2:
        container_name: mongos2
        networks:
          mongo:
            ipv4_address: 172.20.0.18
        image: mongo
        ports:
          - 27027:27017
        volumes:
          - ./mongos2/data/db:/data/db
          - ./mongos2/data/configdb:/data/configdb
        entrypoint: mongos
        command: --configdb config_server/172.20.0.14:27019,172.20.0.15:27019,172.20.0.16:27019 --bind_ip_all
        depends_on:
          - node1
          - node2
          - node3
      mongos3:
        container_name: mongos3
        networks:
          mongo:
            ipv4_address: 172.20.0.19
        image: mongo
        ports:
          - 27037:27017
        volumes:
          - ./mongos3/data/db:/data/db
          - ./mongos3/data/configdb:/data/configdb
        entrypoint: mongos
        command: --configdb config_server/172.20.0.14:27019,172.20.0.15:27019,172.20.0.16:27019 --bind_ip_all
        depends_on:
          - node1
          - node2
          - node3
    networks:
      mongo:
        driver: bridge
        ipam:
          config:
            - subnet: 172.20.0.10/24

    (2)本地新建映射目录:

    mkdir -p ./{node1,node2,node3,mongos1,mongos2,mongos3,config1,config2,config3}/data

    (3)检测下洗的yaml有没有问题

     [root@dev01 mongo]# docker-compose -f mongo_cluster.yaml config 

    没问题会提示。

    (4)直接拉起mongo服务:

      docker-compose -f mongo_cluster.yaml up -d 

    (5)config server配置:

    ## 登录config
    mongo --port 27019 --host 172.20.0.14
    ​
    ## 创建配置(_id : "config" 等于上边的 replSetName: config)
    config = {
        _id: "config_server",
        configsvr: true,
        members : [
            {_id: 0, host: "172.20.0.14:27019"},
            {_id: 1, host: "172.20.0.15:27019"},
            {_id: 2, host: "172.20.0.16:27019"}
        ]
    };
    ​
    ## 初始化副本集配置
    rs.initiate(config)
    ​
    ## 查看状态
    rs.status()

    (6)mongo配置:

    ## 登录mongos
    mongo --port 27017 --host 172.20.0.17
    ## 添加分片
    sh.addShard("172.20.0.11:27018")
    sh.addShard("172.20.0.12:27018")
    sh.addShard("172.20.0.13:27018")

    然后可以通过27017,27027,27037任意一个本地端口进行连接测试,可以研究mongo rs集群了。

  • 相关阅读:
    List<Map>遍历相加
    jqgrid属性
    idea Could not autowire. No beans of 'xxxx' type found
    【笔记】抓取百度贴吧
    python url中文转码
    python lxml 库
    Python 基础 (笔记)
    HTML 背景
    HTML Iframe
    HTML 响应式 Web 设计
  • 原文地址:https://www.cnblogs.com/5sdba-notes/p/13126419.html
Copyright © 2020-2023  润新知