设为首页 加入收藏

TOP

MongoDB集群架构之分片+副本集架构(一)
2018-10-23 00:06:03 】 浏览:241
Tags:MongoDB 集群 架构 分片 副本

在热门的NoSQL数据库MongoDB中,还支持一种分片+副本集架构的集群。本文将介绍分片+副本集架构的集群的相关概念以及环境搭建工作,同时介绍了标签分片在这种架构中的应用。


1.分片+副本集架构相关概念


在Mongodb分片架构中提到了单纯的分片架构中存在单点故障问题,这里将给出一种解决办法。


解决这个问题的办法就是使用Mongodb的分片+副本集架构来实现这种架构方式。目前的架构的三种类型的服务器节点中,配置节点和路由节点都各自有三个,因此没有单点故障问题。只有分片节点具有单点故障问题,因此可以为每个分片节点部署一个独立的副本集架构,这样每一个分片节点就不存在单点故障问题。在目前的单纯的分片架构中,新增6个分片节点,总共9个分片节点组成三个独立的副本集集群。新的分片+副本集架构中,总共有12个节点组成。


相对于MySQL数据库而言,Mongodb的这种内置的分片功能和副本集功能,使得部署较大规模的Mongodb集群变得比较容易。


2.分片+副本集环境搭建


分片+副本集架构除了每个分片节点扩充为一个独立的副本集之外,其它节点情况跟单纯的分片架构相同。为了节省篇幅,此处仅仅列出不同的地方,其它节点按照分片架构搭建即可。


集群目标:总共由15个节点组成的分片+副本集集群。


配置节点。共3个节点。


 27117,27118,27119三个节点组成一个副本集config。


分片节点。 共9个节点。


27017,27317,27417三个节点组成一个副本集shard27017。


  27018,27318,27418三个节点组成一个副本集shard27018。


  27019,27319,27419三个节点组成一个副本集shard27019。


路由节点。共3个节点。


  27217,27218,27219三个节点为3个独立的路由节点。


初始化目录结构。


[root@coe2coe data]# tree -d -L 4 .


.


├── config


│   ├── 27117


│   │   ├── data


│   │   └── log


│   ├── 27118


│   │   ├── data


│   │   └── log


│   └── 27119


│       ├── data


│       └── log


├── route


│   ├── 27217


│   │   ├── data


│   │   └── log


│   ├── 27218


│   │   ├── data


│   │   └── log


│   └── 27219


│       ├── data


│       └── log


└── shard


    ├── shard27017


    │   ├── 27017


    │   │   ├── data


    │   │   └── log


    │   ├── 27317


    │   │   ├── data


    │   │   └── log


    │   └── 27417


    │       ├── data


    │       └── log


    ├── shard27018


    │   ├── 27018


    │   │   ├── data


    │   │   └── log


    │   ├── 27318


    │   │   ├── data


    │   │   └── log


    │   └── 27418


    │       ├── data


    │       └── log


    └── shard27019


        ├── 27019


        │   ├── data


        │   └── log


        ├── 27319


        │   ├── data


        │   └── log


        └── 27419


            ├── data


            └── log


配置节点启动脚本。


跟单纯分片架构相同,不再赘述。


(3)分片节点启动脚本。


主要是在分片架构的相关脚本的基础上,为每个分片节点配置了一个副本集。


分片节点27017的副本集:名称shard27017


27017:主节点  27317:从节点 27417:从节点


分片节点27018的副本集:名称shard27018


27018:主节点  27318:从节点 27418:从节点


分片节点27019的副本集:名称shard27019


27019:主节点  27319:从节点 27419:从节点


分片节点的启动脚本如下:



图1


分片节点启动之后需要分别初始化3个副本集,初始化方法不再赘述。


路由节点启动脚本。


脚本跟单纯的分片架构相同,不再赘述。


路由节点启动后,需要添加分片节点到路由中,添加的方法跟单纯副本集方式有所不同。



图2


至此分片+副本集架构的Mongodb集群环境搭建完毕。


3.分片+副本集的总控脚本


为了测试方便,编写了总控脚本。总控脚本需要启动三种类型共15个节点。


[root@coe2coe data]# cat cluster.sh


#!/bin/bash


##################################################################


#   FileName    :startcluster.sh


#   Author      : coe2coe@qq.com


#   Created     :2018-10-02


#   Description :http://www.cnblogs.com/coe2coe/


#################################################################


start()


{


IP=$(ip addr |grep inet |grep brd |awk -F

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MongoDB集群架构之副本集架构 下一篇深入理解Redis高可用方案-Sentinel

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目