Centos Stream 9 搭建 Mongo 7.0.12 副本集分片集群

系统: centos stream 9

mongo版本: 7.0.12

MongoDB 是一种流行的 NoSQL 数据库,具有高可扩展性和灵活的数据模型。在分片环境中,MongoDB 由以下几个主要组件组成:

  1. mongos

: 这是路由服务,客户端应用程序通过 mongos 连接到分片集群。mongos 负责将查询分配到适当的分片。

  1. config servers

: 配置服务器存储了集群的元数据,包括分片的分片键和路由信息。最初的 MongoDB 版本使用三个独立的配置服务器来确保高可用性。自 MongoDB 3.4 版本起,配置服务器被集成到一个独立的复制集群中。

  1. shards

: 分片是实际存储数据的地方。每个分片可以是一个单独的 MongoDB 服务器或一个复制集(包含多个 MongoDB 实例以实现数据冗余和高可用性)。

关系和工作流程

  1. 客户端连接

:客户端应用程序通过 mongos 连接到 MongoDB 集群。mongos 充当路由器的角色,接收客户端请求。

  1. 查询路由

:mongos 接收到客户端的查询请求后,会查询配置服务器以获取分片的路由信息。

  1. 配置服务器

:配置服务器存储了集群的元数据,如分片键和路由信息。mongos 使用这些元数据来确定哪些分片包含请求的数据。

  1. 请求分片

:根据配置服务器提供的路由信息,mongos 将查询请求转发到适当的分片。

  1. 数据返回

:各个分片处理请求并将结果返回给 mongos,mongos 再将合并后的结果返回给客户端。

数据分布和冗余

  • 分片

:每个分片存储数据的子集,并可以是一个单独的 MongoDB 实例或一个复制集。分片通过分片键将数据均匀分布到各个分片中,以实现水平扩展。

  • 复制集

:每个分片通常是一个复制集,以确保数据的高可用性和故障恢复能力。复制集包括一个主节点和多个副本节点。主节点处理所有写操作,副本节点复制主节点的数据以提供冗余。

优势

  • 水平扩展:通过添加更多的分片,可以水平扩展 MongoDB 集群,处理更大的数据量和更高的请求负载。
  • 高可用性:通过复制集,MongoDB 提供了高可用性和数据冗余。
  • 灵活的查询路由:mongos 根据配置服务器提供的元数据动态路由查询,使得分布式数据存储和检索变得透明且高效。

总结来说,mongos、配置服务器和分片共同协作,使 MongoDB 能够以高效和可靠的方式处理大规模分布式数据存储和查询。

以下是所部署的服务,用三台机

172.16.0.211

172.16.0.212

172.16.0.213

mongos: 40000

mongos: 40000

mongos: 40000

config server: 30000

config server: 30000

config server: 30000

shard1: 27001 (primary)

shard2: 27002 (secondary)

shard3: 27003 (secondary)

shard1: 27001 (secondary)

shard2: 27002 (primary)

shard3: 27003 (secondary)

shard1: 27001 (secondary)

shard2: 27002 (secondary)

shard3: 27003 (primary)

1、三台机安装mongo源

cat > /etc/yum.repos.d/mongodb-org-7.0.repo <<loyu
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc
loyu

2、三台机挂载数据目录 /data (500GB) (新增一块虚拟磁盘)

dnf -y update
dnf -y install nfs-utils 
pvcreate /dev/xvdb 
vgcreate data /dev/xvdb 
lvcreate -n mongo -l +127999 data 
mkfs -t xfs -n ftype=1 /dev/data/mongo 
echo "/dev/mapper/data-mongo /data xfs defaults 0 0" >> /etc/fstab 
mkdir /data 
mount -a

3、三台机配置时间同步

dnf install -y ntpsec
ntpdate ntp7.aliyun.com
crontab -l
0 0 * * * /usr/sbin/ntpdate ntp7.aliyun.com

4、三台机安装mongo

dnf -y install mongodb-org

5、三台机复制配置,服務啓動文件

(以 /etc/mongod.conf为模板 复制 为 mongos, confid,shard1,shard2,shard3 配置文件)(后续待修改)

mkdir /data/conf
cd /data/conf/
##生成配置文件
cp /etc/mongod.conf configd.conf
cp /etc/mongod.conf mongos.conf
cp /etc/mongod.conf shard1.conf
cp /etc/mongod.conf shard2.conf
cp /etc/mongod.conf shard3.conf
mv /etc/mongod.conf /etc/mongod.conf.bak  ## 原来的就不要了
##生成服務啓動文件
cp /usr/lib/systemd/system/mongod.service  /usr/lib/systemd/system/configd.service
cp /usr/lib/systemd/system/mongod.service  /usr/lib/systemd/system/mongos.service
cp /usr/lib/systemd/system/mongod.service  /usr/lib/systemd/system/shard1.service
cp /usr/lib/systemd/system/mongod.service  /usr/lib/systemd/system/shard2.service
cp /usr/lib/systemd/system/mongod.service  /usr/lib/systemd/system/shard3.service
mv /usr/lib/systemd/system/mongod.servic
  • 41
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值