MongoDB高可用集群搭建示例

2020-05-22 00:00:00 集群 配置 分片 端口 副本

1 Mongodb集群介绍

在官方文档的介绍中,MongoDB集群有三种形式:Replica Set(副本集),Sharding(分片集群),Master-Slaver(主从)。那么该如何选择某种集群应用

呢?其实可以从官方的文档介绍中可以得出结论,副本集和主从的模式仅是读写分离与容灾的体现,对于真正到达海量数据时,我们需要的是能将数据按照一定规

则分配至不同服务器进行存储和查询等,这就是分片集群要做的事情,聪明的你肯定已经猜到了,这种模式也囊括了副本集和主从,既然要做集群,那么我们就搭

的分片集群,本文主要介绍分片集群的搭建,以及分片集群模式下的安全认证处理配置。

2 分片集群的组件介绍

分片集群中主要有三个组件:

  • Routers(前端路由器),mongos充当查询路由器,提供客户端应用程序和分片集群之间的接口。客户端通过驱动选择连接某一个mongs作为集群入口,执行
    数据查询和写入。没错,它也是多个,当然官方要求至少一个,但为了防止单点故障,我们选择3台。
  • Config Servers (配置服务器),config servers配置服务器存储群集的元数据和配置设置。从MongoDB 3.4开始,必须将配置服务器部署为副本集。它主要记录了
    shard的配置信息,元信息,如数据存储目录,日志目录,端口号,chunk信息,是否开启了journal等信息,为了保证它的高可用,官方要求必须是副本集,如果
    配置器一旦整体无法使用,则集群无法使用,所以,它也是3台。
  • Shard (分片服务器),每个分片包含分片数据的子集。每个分片都可以部署为副本集。实际储存数据的载体服务,一个shard角色应该是一个ReaplicaSet组,本
    此我们采用3个Shard,每个shard一个副本集,副本集中会有主节点,从节点,仲裁节点。

组件交互图:

3 集群搭建 环境准备:

mongo1(127.0.0.1) mongo2(127.0.0.1) mongo3(127.0.0.1)

config1(端口:27018) config2(端口:27018) config3(端口:27018)

mongos1(端口:27019) mongos2(端口:27029) mongos3(端口:27039)

Shard1(端口:27001) Shard1(端口:27021) Shard1(端口:27031)

Shard2(端口:27002) Shard2(端口:27022) Shard2(端口:27032)

Shard3(端口:27003) Shard3(端口:27023) Shard3(端口:27033)

实际当中,个人觉得mong1,mongo2 ,mongo3应当是在三台不同的服务器,mongos应当与config部署在不同的服务器,各shard组副本集应当部署在不同的服务器,

config可以与shard片部署在同一服务器,也就是说要达到性能优,至少应当有6台服务器,mongos用3台,config和3组Shard用3台。本文中就以本地Windows7环境为例,

用不同的端口作为伪服务器演示搭建配置过程。MongoBD zip安装包下载地址:

Downloads for win32dl.mongodb.org

相关文章