mongo 3.4分片集群系列之四:搭建分片集群--哈希分片 + 安全 + 区域
这个系列大致想跟大家分享以下篇章:
2、mongo 3.4分片集群系列之二:搭建分片集群--哈希分片
3、mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全
4、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分片集群系列之四:搭建分片集群--哈希分片 + 安全 + 区域的更多相关文章
- Elasticsearch使用系列-Docker搭建Elasticsearch集群
Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...
- MongoDB系列—— Window 搭建Mongodb 集群
Mongodb的集群方式的搭建有三种:Replica Set / Sharding / Master-Slaver.这里只说明最简单的集群搭建方式(Replica Set) Replica Set M ...
- MongoDB副本集配置系列五:副本集的在线迁移
MongoDB副本集的在线迁移 查看当前集群的状态: { "setName" : "gechongrepl", "setVersion" : ...
- MongoDB副本集配置系列三:副本集的认证方式
1:副本集配置参考这篇博客: http://www.cnblogs.com/xiaoit/p/4478951.html 2:副本集的认证 假设有两台机器已经配置好了副本集(副本集罪一般最少3台机器,这 ...
- mongo 3.4分片集群系列之八:分片管理
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
- mongo 3.4分片集群系列之七:配置数据库管理
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
- mongo 3.4分片集群系列之六:详解配置数据库
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
- mongo 3.4分片集群系列之五:详解平衡器
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
- mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
随机推荐
- Android: Mac无法找到Android SDK问题
通过brew cask install android-sdk后,Intellij Idea中设置Android SDK路径失败,解决方法如下: /usr/local/Caskroom/android ...
- openFileOutput 文件属性设置、主动配置文件的可读写属性及事实上现方式
首先參考 Android 内部存储相关的函数(getCacheDir,getDir, getFileStreamPath,getFilesDir,openFileInput, ...) 1. 用ope ...
- IE網址欄快速輸入網址,“Ctrl+Enter”補齊“.com”
繁體中文Windows,預設 IE 在網址列輸入 abc,然後按 Ctrl+Enter ,會跳到www.abc.com.tw, 但較常用的連結是www.abc.com,如何修改这一設定呢? 可以透過修 ...
- ubuntu Install Firefox
Firefox 下载文件以.tar和.bz2格式保存,必须从这些压缩包中提取文件.不想删除当前安装的 Firefox,给每个版本的 Firefox 创建一个单独的文件夹. 例如:1.Firefox 版 ...
- 打开与关闭Linux防火墙
1) 重启后生效 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后失效 开启: service iptables sta ...
- C#在Linux下获取文件夹信息(所在磁盘总大小,使用空间,已用空间,使用率)
1.第一种使用shell命令实现: private DiskInfo LinuxGetFolderDiskInfo(string path) { DiskInfo disk = new DiskInf ...
- android application类简单介绍(一)
每次应用程序执行时.应用程序的application类保持实例化的状态. 通过扩展applicaiton类,能够完毕下面3项工作: 1.对android执行时广播的应用程序级事件如低低内做出响应. 2 ...
- vmstat输出项解释
输出项的解释例如以下: procs * r列表示执行和等待cpu时间片段的进程数,这个值假设长期大约系统cpu个数.说明cpu不足 * b列表示在等待资源的进程数.比方正在等待IO或者内存交换等等 m ...
- HDU 4920(杭电多校训练#5 1010 题) Matrix multiplication(不知道该挂个什么帽子。。。)
题目地址:pid=4920">HDU 4920 对这个题简直无语到极点. . .竟然O(n^3)的复杂度能过....方法有三.. 1:进行输入优化和输出优化. . (前提是你的输入优化 ...
- js jquery验证上传文件的格式和大小
// 验证附件格式和大小 function confirmData() { var flag = true; var message = ""; var errorSize = & ...