这个系列大致想跟大家分享以下篇章:

1、mongo 3.4分片集群系列之一:浅谈分片集群

2、mongo 3.4分片集群系列之二:搭建分片集群--哈希分片

3、mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全

4、mongo 3.4分片集群系列之四:搭建分片集群--哈希分片 + 安全 + 区域

5、mongo 3.4分片集群系列之五:详解平衡器

6、mongo 3.4分片集群系列之六:详解配置数据库

7、mongo 3.4分片集群系列之七:配置数据库管理

8、mongo 3.4分片集群系列之八:分片管理

 

这一篇也是实践篇。

1、        简单介绍区域

区域,简单来说,就是将一个或几个分片划分为一组,也就是一个区域,那么标记为该区域的数据在平衡的集群中,只会存储在该区域内的分片中。

举个例子(借用官网的例子说明):

定义区域前的架构

分片集群部署目前由三个分片组成。

  

定义区域后的架构

根据需要,定义两个区域“recent”和“archive”,区域“recent”由shard1和shard2组成,区域“archive”由shard3组成

  

关于区域和分片键的一些说明:

每个区域覆盖一个或多个分片键值范围。区域覆盖的每个范围总是包括其下边界,而不包括上边界。

区域不能共享范围,也不能具有重叠的范围。

当定义要覆盖的区域的新范围时,必须使用分片键中包含的字段。如果使用复合分片键,则范围必须包含分片键的前缀。

2、        本篇分片集群的架构

主机

分片

分片名称

区域

 

192.168.209.155

mongo_shard3

shard0002

notGsxt

mongo_shard1

shard0000

isGsxt

mongo_shard2

shard0001

192.168.209.156

mongo_shard4

shard0003

由2个主机构成,其中主机192.168.209.155提供3个分片,分片名称分别为mongo_shard1,mongo_shard2,mongo_shard3。主机192.168.209.156供1分片,为mongo_shard4。主机192.168.209.155的mongo_shard1,mongo_shard2,和主机192.168.209.156的mongo_shard4构成区域isGsxt,主机192.168.209.155的mongo_shard2构成区域notGsxt。(配置服务器和路由都在192.168.209.155上)

3、        具体操作步骤

本篇文章是认为已经搭建了哈希分片+安全的,有关如何搭建哈希分片+安全的集群,请参考上一篇文章:mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全

以下步骤,除了第(1)步,其余的步骤,都在主机192.168.209.155上操作

1)    首先,搭建一个4个哈希分片的集群

  有关如何搭建哈希分片+安全的集群,请参考上一篇文章:mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全

2)    禁用平衡器

为了降低性能影响,可以禁用集群上的平衡器。

在主机192.168.209.155上,连接到一个mongos实例

# mongo --port 6666 -u bear -p bear --authenticationDatabase admin           

use admin;

sh.stopBalancer();

  

3)    将每个分片添加到适当的区域

查看集群内分片的名称

sh.status();

  

主机192.168.209.155的mongo_shard1,mongo_shard2,和主机192.168.209.156的mongo_shard4构成区域isGsxt。

sh.addShardTag(shard0000,”isGsxt”);

sh.addShardTag(shard0001,”isGsxt”);

sh.addShardTag(shard0003,”isGsxt”);

主机192.168.209.155的mongo_shard2构成区域notGsxt。

sh.addShardTag(shard0002,”notGsxt”);

4)    定义每个区域的范围

用集合上的分片键定义区域范围,对于每个集合都要执行此操作,此操作是以集合为单位,而不是整个数据库。集合必须是已分片的集合。

举个例子,gsxt数据库的gansu_test1集合,其中分片键为Name字段。将其定义到isGsxt区域中。

sh.addTagRange(

“gsxt.gansu_test1”,

{“Name”:MinKey},

{“Name”:MaxKey},

“isGsxt”

)

 

5)    启用平衡器

sh.startBalancer();

6)    确认更改

sh.status();

    

7)    测试

  可以尝试往gsxt.gansu_test1集合中插入数据,然后在用sh.status(),查看数据的块分布情况。

--------------------------------------- over ------------------------------------------------------

以上资料,大部分是参考官网的资料,在此表示感谢。

https://docs.mongodb.com/manual/core/zone-sharding/

mongo 3.4分片集群系列之四:搭建分片集群--哈希分片 + 安全 + 区域的更多相关文章

  1. Elasticsearch使用系列-Docker搭建Elasticsearch集群

    Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...

  2. MongoDB系列—— Window 搭建Mongodb 集群

    Mongodb的集群方式的搭建有三种:Replica Set / Sharding / Master-Slaver.这里只说明最简单的集群搭建方式(Replica Set) Replica Set M ...

  3. MongoDB副本集配置系列五:副本集的在线迁移

    MongoDB副本集的在线迁移 查看当前集群的状态: { "setName" : "gechongrepl", "setVersion" : ...

  4. MongoDB副本集配置系列三:副本集的认证方式

    1:副本集配置参考这篇博客: http://www.cnblogs.com/xiaoit/p/4478951.html 2:副本集的认证 假设有两台机器已经配置好了副本集(副本集罪一般最少3台机器,这 ...

  5. mongo 3.4分片集群系列之八:分片管理

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  6. mongo 3.4分片集群系列之七:配置数据库管理

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  7. mongo 3.4分片集群系列之六:详解配置数据库

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  8. mongo 3.4分片集群系列之五:详解平衡器

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  9. mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

随机推荐

  1. Redis集群主备模式部署

    网上有非常多用Ruby安装Redis-cluster的文章.可是在实际环境下不想安装Ruby,所以本文主要介绍了用Redis命令部署Redis集群.而且为集群中每个master实例添加一个slave实 ...

  2. php高效获取数据分页

    mysql.php 获取数据库中的记录,全然个人经验总结,仅供參考! <? php /** *PHP+MYSQL数据库基本功能 *http://blog.csdn.net/yown */ ### ...

  3. HTML5----CSS3图片滤镜(filter)特效

    支持Chrome: 暂不支持浏览器:FF,IE... 希望后者努力 效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFteXM=/font/5a ...

  4. docker init 起步

    #yum install wget http://fedora.mirror.nexicom.net/epel/6/x86_64/epel-release-6-8.noarch.rpm yum -y ...

  5. 图像处理之基础---用Shader实现的YUV到RGB转换:使用3重纹理实现 .

    上一篇中,我是用一个RGB格式的纹理来存储每一帧的画面,其中纹理为m_FrameWidth * m_FrameHeight大小,这样,在内存中,就必须要先对YUV的数据进行排序,然后才能当做RGB的数 ...

  6. jeasyui控件事件和方法的使用方法

    1.事件是在页面加载后就注册绑定: $(function () { ocr(); }); function ocr() { $('#dgTeacher').datagrid({ onClickRow: ...

  7. BestCoder Round #56/hdu5463 Clarke and minecraft 水题

    Clarke and minecraft 问题描述 克拉克是一名人格分裂患者.某一天,克拉克分裂成了一个游戏玩家,玩起了minecraft.渐渐地,克拉克建起了一座城堡. 有一天,克拉克为了让更多的人 ...

  8. Android 的坑一 :android.content.res.Resources$NotFoundException: String resource ID #0x0 找不到资源文件ID #0x0

    原因分析如下: 遇到这种情况,很有可能是把一个int型业务数据的 设置setText()或者类似的方法中, 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件ID, 所以就会报 ...

  9. 关于clojurescript+phantomjs+react的一些探索

    这两天需要使用phantomjs+react生成些图片 React->Clojurescript: 最开始发现clojurescript中包裹react的还挺多: https://github. ...

  10. mysql通用分页存储过程遇到的问题(转载)

    mysql通用分页存储过程遇到的问题(转载) http://www.cnblogs.com/daoxuebao/archive/2015/02/09/4281980.html