首页 > 其他分享 >Mongo分片集群6.0.3版本 Sharding 模式部署

Mongo分片集群6.0.3版本 Sharding 模式部署

时间:2022-12-13 18:02:49浏览次数:79  
标签:10 Mongo 6.0 分片 mongos conf bd01 Sharding mongo

概述

Shard

一个分片包含一个分片集群的一个分片数据子集。集群的碎片一起保存集群的整个数据集。 从MongoDB 3.6开始,分片必须部署为副本集,以提供冗余和高可用性。 用户、客户端或应用程序只能直接连接到一个分片来执行本地管理和维护操作。 在单个分片上执行查询只返回数据的子集。连接到mongos执行集群级操作,包括读或写操作

Config Servers(metadata)

配置服务器存储分片集群的元数据。元数据反映了分片集群中所有数据和组件的状态和组织。元数据包括每个分片上的块列表和定义块的范围。

​mongos实例缓存这些数据,并使用它将读写操作路由到正确的分片。mongos会在集群的元数据发生变化时更新缓存,比如Chunk splitting或者添加一个shard。分片还从配置服务器读取块元数据。

​配置服务器还存储身份验证配置信息,例如基于角色的访问控制或集群的内部身份验证设置。

​MongoDB还使用配置服务器来管理分布式锁。

​每个分片集群必须有自己的配置服务器。不要对不同的分片集群使用相同的配置服务器。

Mongos(router)

MongoDB mongos实例将查询和写入操作路由到分片集群中的分片。从应用程序的角度来看,Mongos为分片集群提供了唯一的接口。应用程序从不直接与碎片连接或通信。

​mongos通过缓存配置服务器的元数据来跟踪哪个分片上有哪些数据。mongos使用元数据将操作从应用程序和客户端路由到mongod实例。mongos没有持久状态,消耗的系统资源最少。

​最常见的做法是在与应用程序服务器相同的系统上运行mongos实例,但也可以在碎片或其他专用资源上维护mongos实例。

Mongo分片集群6.0.3版本 Sharding 模式部署_分片集群


一、架构

OS: Centos 7.4

Mongos:10.xxxxx.43:28017

Config Server Replica Set:10.xxxxx.43:28018,10.xxxxx.44:28018,10.xxxxx.48:28018

Shard Replica Sets:10.xxxxx.43:28021,10.xxxxx.44:28021,10.xxxxx.48:28021


二.部署准备

下载mongodb-linux-x86_64-rhel70-6.0.3.tgz

下载地址:​​https://www.mongodb.com/try/download/community​


Shell工具mongosh-1.6.1-x64.msi

下载地址:​​https://www.mongodb.com/try/download/shell​

2.1 所有节点新建主目录

注:目录结构可以自定义

/bd01/mongo

2.2所有节点新建Config Server目录

mkdir  -p /bd01/mongo/csdata/{conf,log,data}

目录结构说明:

conf: 配置目录

log: 日志目录

data:数据目录

 

2.3 所有节点新建Shard 目录

mkdir -p  /bd01/mongo/shdata/{conf,log,data}

目录结构说明如2.2

 

2.4 mongos节点新建mongos目录

/bd01/mongo/mongos/{conf,log}

 

2.5 上传部署包

将部署包上传至所有节点/bd01/mongo/ 目录下,并解压。

mongo运行包说明:

Config Server和Shard都需要通过 mongod运行

mongos(Router)通过 mongos运行

Mongo分片集群6.0.3版本 Sharding 模式部署_6.0.3版本_02


三、部署Shard集群

3.1 创建配置文件

在所有节点,创建配置文件/bd01/mongo/shdata/conf/mongodb.conf

systemLog:

  destination: file

  path: /bd01/mongo/shdata/logs/mongodb.log   

  logAppend: true

storage:

  journal:

    enabled: true

  dbPath: /bd01/mongo/shdata/data

  directoryPerDB: true

  #engine: wiredTiger

  wiredTiger:

    engineConfig:

      cacheSizeGB: 1

      directoryForIndexes: true

    collectionConfig:

      blockCompressor: zlib

    indexConfig:

      prefixCompression: true

net:

  bindIp: 0.0.0.0

  port: 28021

 

processManagement:

  timeZoneInfo: /usr/share/zoneinfo

 

#security:  

#  keyFile: /bd01/mongo/shdata/mongokeyfile.key

#  authorization: enabled

 

replication:

  oplogSizeMB: 2048

  replSetName: sh1

sharding:

  clusterRole: shardsvr

processManagement:

  fork: true

 

3.2 启动实例

进入/bd01/mongo目录

mongodb-linux-x86_64-rhel70-6.0.3/bin/mongod -f shdata/conf/mongodb.conf(所有节点都要执行)

启动成功后,会有如下提示

Mongo分片集群6.0.3版本 Sharding 模式部署_6.0.3版本_03

3.3初始化副本集

使用mongosh 连接任意一个shard节点(只需在一个节点上执行)

注:mongosh通过<部署准备>中mongosh-1.6.1-x64.msi安装,也可以安装linux版本

​mongosh --host <hostname> --port <port>​

Mongo分片集群6.0.3版本 Sharding 模式部署_分片集群_04

初始化

配置解读,相关参数与shard配置文件对应关系:
1._id: 对应的名字为:replSetName

2.Members数组中的id,可以按序定义

3.host: 对应config 的IP和端口

rs.initiate(

  {

    _id : "sh1",

    members: [

      { _id : 0, host : "10.xxxx.43:28021" },

      { _id : 1, host : "10.xxxx.44:28021" },

      { _id : 2, host : "10.xxxx.48:28021" }

    ]

  }

)

 

返回OK表示初始化成功

Mongo分片集群6.0.3版本 Sharding 模式部署_mongodb_05

可以通过rs.config(),查看副本集状态

Mongo分片集群6.0.3版本 Sharding 模式部署_6.0.3版本_06

四、部署config集群

4.1 创建配置文件

在所有节点,创建配置文件/bd01/mongo/csdata/conf/mongodb.conf

 

systemLog:

  destination: file

  path: /bd01/mongo/csdata/log/mongocs.log

  logAppend: true

storage:

  journal:

    enabled: true

  dbPath: /bd01/mongo/csdata/data

  directoryPerDB: true

  #engine: wiredTiger

  wiredTiger:

    engineConfig:

      cacheSizeGB: 1

      directoryForIndexes: true

    collectionConfig:

      blockCompressor: zlib

    indexConfig:

      prefixCompression: true

net:

  bindIp: 0.0.0.0

  port: 28018

replication:

  oplogSizeMB: 2048

  replSetName: configReplSet

sharding:

  clusterRole: configsvr

processManagement:

  fork: true

 

4.2 启动实例

进入/bd01/mongo目录

mongodb-linux-x86_64-rhel70-6.0.3/bin/mongod -f csdata/conf/mongocs.conf(所有节点都要执行)

Mongo分片集群6.0.3版本 Sharding 模式部署_Sharding_07

4.3初始化副本集

使用mongosh 连接任意一个config节点(只需在一个节点上执行)

​mongosh --host <hostname> --port <port>​

Mongo分片集群6.0.3版本 Sharding 模式部署_分片集群_08

初始化

配置解读,相关参数与config配置文件对应关系:
1._id: 对应的名字为:replSetName

2.Members数组中的id,可以按序定义

3.host: 对应config 的IP和端口

4.configsvr:对应clusterRole

rs.initiate(

  {

    _id: "configReplSet",

    configsvr: true,

    members: [

      { _id : 0, host : "10.xxxx.43:28018" },

      { _id : 1, host : "10.xxxx.44:28018" },

      { _id : 2, host : "10.xxxx.48:28018" }

    ]

  }

)

 

返回OK表示初始化成功

Mongo分片集群6.0.3版本 Sharding 模式部署_mongodb_09

可以通过rs.config(),查看副本集状态

Mongo分片集群6.0.3版本 Sharding 模式部署_6.0.3版本_10

五、部署mongos

5.1 创建配置文件

/bd01/mongo/mongosdata/conf/mongos.conf

configReplSet:对应config配置中replSetName

systemLog:

  destination: file

  path: /bd01/mongo/mongosdata/logs/mongos.log

  logAppend: true

net:

  bindIp: 0.0.0.0

  port: 28017

sharding:

  configDB: configReplSet/10.67.90.43:28018,10.67.90.44:28018,10.67.90.48:28018

processManagement:

  fork: true

5.2 启动实例

​mongodb-linux-x86_64-rhel70-6.0.3/bin/mongos -f mongosdata/conf/mongos.conf​

Mongo分片集群6.0.3版本 Sharding 模式部署_分片集群_11

5.3 添加shard集群

​mongosh --host <hostname> --port <port>​

Mongo分片集群6.0.3版本 Sharding 模式部署_mongodb_12

sh1:对应shard配置文件中的replSetName

sh.addShard("sh1/10.xxxx.43:28021,10.xxxx.44:28021,10.xxxx.48:28021")

Mongo分片集群6.0.3版本 Sharding 模式部署_Sharding_13

通过sh.status()查看集群详情

Mongo分片集群6.0.3版本 Sharding 模式部署_分片集群_14


标签:10,Mongo,6.0,分片,mongos,conf,bd01,Sharding,mongo
From: https://blog.51cto.com/u_4319742/5934958

相关文章

  • 【java-01】springboot利用sharding jdbc实现读写分离
    写在开头打算把自己的java后端学习过程分享给大家,也方便之后自己回顾。从这里开始~目前在学习黑马的瑞吉外卖新手入门项目,这篇随笔记录的是项目优化之一读写分离先列出......
  • MongoDB - 数据模型的设计模式
    简介官方文章的地址是BuildingwithPatterns:ASummary,其中汇总了12种设计模式及使用场景。上述的图表列举了12种设计模式及应用场景,主要是以下这些:近似值模式......
  • MongoDB学习笔记
    Centos安装mongodbyum安装已按照mongodb4.4版本为例,官方说明文档:https://www.mongodb.com/docs/v4.4/tutorial/install-mongodb-on-red-hat/配置sudoyumlist|g......
  • ubuntu16.04 安装gcc8 g++8
    下载:sudoadd-apt-repositoryppa:ubuntu-toolchain-r/testsudoapt-getupdatesudoapt-getinstallgcc-8sudoapt-getinstallg++-8 配置:将gcc8,g++8作为默认选......
  • 基于MongoDB GridFS的图片存储
    它是mongodb的一个子模块,使用GridFS可以基于mongodb来持久存储文件.并且支持分布式应用(文件分布存储和读取).GridFS是mongodb中用户存储大对象的工具,......
  • 记一次ESXI 6.0服务器故障处理过程
    一、故障有同事反映虚拟机连接不了在vcenter上看服务器CPU跑满等于服务器远程控制卡,一切正常(此处有坑)初步怀疑是有虚拟机跑东西把CPU占满了二、服务器配置信息服务器型号:戴......
  • MongoDB性能测试(Windows环境)
    MongoDB性能测试(Windows环境)一、测试环境Server硬件环境:Client硬件环境:MongoDB版本:mongodb5.0.14二、性能测试实验目的:往MongoDB中插入10000条json,统计花费的时......
  • MongoDB的local数据库
    每个mongod实例都有自己的local数据库,用于存储复制过程中使用的数据和其他特定于实例的数据。local数据库对复制不可见:不复制local数据库中的集合。local数据库中的集合:......
  • MongoDB 聚合管道(Aggregation Pipeline)
    管道概念POSIX多线程的使用方式中,有一种很重要的方式-----流水线(亦称为“管道”)方式,“数据元素”流串行地被一组线程按顺序执行。它的使用架构可参考下图:以面向对象的思想......
  • mongo的一些操作
    mongo语句mongo进入mongo//创建数据库并切换到此数据库useadmin//创建新用户=》在哪个库下就是选择创建哪个库的用户db.createUser({user:'linewell',pwd:'123456',......