域 Domain
在初级课程的视频中,我们都了解到,巨杉数据库是通过数据域实现多租户隔离的,那么数据域是什么呢?今天带大家来了解一下,在这之前需要对复制组有所了解。
【数据组】
通过前面的学习,我们都知道,相同类型的节点可以组成一个复制组。复制组是巨杉数据组库实现集群灾备的重要手段。
【域】
域(Domain)是由若干个复制组(ReplicaGroup)组成的逻辑单元。每个域都可以根据定义好的策略自动管理所属数据,如数据切片和数据隔离等。
一个域中可包含多个数据组,一个数据组可以属于多个域。
域是可以更方便用户管理数据,可以对数据进行物理隔离和逻辑隔离。用户在创建集合时,通过可以指定域来控制自己的数据落到哪些数据组中。
一个集群中,可以创建有多个域,如果两个域之间没有交集(相同的数据组),称为物理隔离。实际应用中,可以将不同应用系统的数据存放在不同的域中,提升数据的安全性。
即使两个域的数据组完全相同,他们之间的数据信息也是完全透明的,可以理解为逻辑隔离。
【域操作】
相对于复制组的扩缩容操作,域的扩缩容操作比较麻烦一点。
在巨杉数据库集群中,可以对域进行增加,删除,扩容缩容的操作。
需要注意的是:
在对域进行删除操作时:需要保证域为空,即域中没有任何数据。
在对域进行缩容操作时:需要保证被移除的节点组中没有任何数据。(复制组之间的数据迁移可以使用split()方法来实现)
创建域
db.createDoamin("myDomain",["group1","group2"],{AutoSplit:true})
在域中增加一个复制组
db.getDomain("myDomain").addGroups({Groups:["group3"]})
在域中移除一个复制组(移除group3)
db.getDomain("myDomain").alert({Groups:["group1","group2"]})
数据域是分布式数据库进行混合业务处理的一个重要特性,也是巨杉数据库十分重要的一个技术特点。大家也可以多多尝试哦~
巨杉数据库社区版下载地址:http://download.sequoiadb.com/cn/