MongoDB分片集群搭建

分片集群搭建过程

在这里插入图片描述

配置并启动config节点集群

config部分的yml

version: '3'
services:
  # config server配置
  mongo_config_server_node_1:
    image: mongo:latest
    container_name: mongo_config_server_node_1
    ports:
      - 27010:27017
    volumes:
      - ./config_server/node_1/data:/data/db
      - ./config_server/node_1/log:/var/log/mongodb
      - ./config_server/node_1/mongo-entrypoint/:/docker-entrypoint-initdb.d/
      - ./config_server/node_1/mongod.conf:/etc/mongod.conf
    entrypoint: ["mongod","--config","/etc/mongod.conf"]
  mongo_config_server_node_2:
    image: mongo:latest
    container_name: mongo_config_server_node_2
    ports:
      - 27011:27017
    volumes:
      - ./config_server/node_2/data:/data/db
      - ./config_server/node_2/log:/var/log/mongodb
      - ./config_server/node_2/mongo-entrypoint/:/docker-entrypoint-initdb.d/
      - ./config_server/node_2/mongod.conf:/etc/mongod.conf
    entrypoint: ["mongod","--config","/etc/mongod.conf"]
  mongo_config_server_node_3:
    image: mongo:latest
    container_name: mongo_config_server_node_3
    ports:
      - 27012:27017
    volumes:
      - ./config_server/node_3/data:/data/db
      - ./config_server/node_3/log:/var/log/mongodb
      - ./config_server/node_3/mongo-entrypoint/:/docker-entrypoint-initdb.d/
      - ./config_server/node_3/mongod.conf:/etc/mongod.conf
    entrypoint: ["mongod","--config","/etc/mongod.conf"]

创建config_server/node_1config_server/node_2config_server/node_3三个目录并且添加上相同配置文件mongod.conf

# 数据库文件位置
# 以追加方式写入日志
logappend=true
# 绑定ip
bind_ip=0.0.0.0
# 绑定端口
port = 27017
# 表示是一个配置服务器
configsvr=true
#配置服务器副本集名称
replSet=config-server

# 是否以守护进程方式运行
# fork = true
# 数据库文件位置
# dbpath=config/config1
# 日志文件位置
# logpath=config/logs/config1.log

使用docker-compose up启动容器,随后进入到其中一个容器当中,使用mongo shell添加节点集群的配置,注意要use admin

// 进入mongo
mongo
// 使用admin
use admin
// 初始化配置信息
var cfg = {
   
	"_id": "config-server",
	"members": [{
   
		"_id": 1,
		"host": "mongo_config_server_node_1:27017"
	}, {
   
		"_id": 2,
		"host": "mongo_config_server_node_2:27017"
	}, {
   
		"_id": 3,
		"host": "mongo_config_server_node_3:27017"
	}]
}
// 执行初始化
rs.initiate(cfg)

配置shard集群

需要搭建起mongo_shard_1和mongo_shard_2两个ReplicaSet集群,具体的步骤如下,创建shard_1/node_1,shard_1/node_2shard_1/node_3三个目录,并分别在目录下面创建mongod.conf文件。

# 绑定ip
bind_ip=0.0.0.0
# 绑定端口
port=27017
# 日志是否总是在后面附加
logappend=true
# replSet名称,要相同才能进入同一个replSet
replSet=shard_1
# 开启日志,似乎默认就是开启的
journal=true
# 开启权限验证
# auth=true

# 数据存储的路径(在docker中的话不需要添加,使用映射即可)
# dbpath=/opt/shell-script/mongo_cluster/node_1/data
# 日志的存储路径(在docker中的话不需要添加,使用映射即可)
# logpath=/opt/shell-script/mongo_cluster/node_1/log/server.log
# 是否后台启动(在docker中的话不需要添加,因为会停止)
# fork=true

在之前的docker-compose文件后面继续追加shard1的相关配置。
docker-compose.yml

version: '3'
services:
  # config server
  mongo_config_server_node_1:
    image: mongo:latest
    container_name: mongo_config_server_node_1
    ports:
      - 27010:27017
    volumes:
      - ./config_server/node_1/data:/data/db
      - ./config_server/node_1/log:/var/log/mongodb
      - ./config_server/node_1/mongo-entrypoint/:/docker-entrypoint-initdb.d/
      - ./config_server/node_1/mongod.conf:/etc/mongod.conf
    entrypoint: ["mongod","--config","/etc/mongod.conf"]
  mongo_config_server_node_2:
    image: mongo:latest
    container_name: mongo_config_server_node_2
    ports:
      - 27011:27017
    volumes:
      - ./config_server/node_2/data:/data/db
      - ./config_
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值