根据《NoSQL》数据库技术与应用一书内容的衍生问题与回答·第5章 MongoDB分片

前言:此系列根据作者在《NoSQL》数据库技术与应用一书校园课堂上,对于老师的提问地收集与回答,“(P1)”为此书书页。部分为开放性问题,若有错误,欢迎提出与指正;若有疑问与补充,欢迎在评论区探讨。望各位理性发言、友好交流、互相进步。


问1:MongoDB分片可以解决存储更多数据量的问题。在关系型数据库里也有类似分片的操作?(P142)

答:关系型数据库有分区、分表、分片、分库的操作。分区主要可以提升查询效率,分表可以提高磁盘I/O性能、操作效率、单表的并发能力,分库可以解决数据库扩展性问题。具体差别可以搜索相关资料。


问2:在“图 5-3 分片集群构架”中,会出现用户都去使用到其中一个,比如MongoS1,造成拥挤吗?(P146)

答:

(并不确定,根据:如何规避mongos路由缓存缺陷_文档数据库服务 DDS_最佳实践_华为云 (huaweicloud.com)进行回答。)

“shard server:存储用户数据,config server:存储元数据。路由信息属于元数据信息,存储在config server中。当用户通过mongos对集群进行数据访问时,mongos会根据config server中的路由信息,将用户请求发送到对应的shard server上,进行数据访问。

缓存机制:将config server的路由信息缓存在mongos本地。该场景下,不但在config server中会存储路由信息,mongos的本地缓存中也可能会缓存路由信息。若系统中存在多个mongos,通过不同的mongos进行数据访问时,可能出现不同mongos上本地缓存的路由信息不一致的情况。”

据以上信息推测,是否当出现缓存路由信息不一致的时候,用户需要访问的数据缓存在其中一个mongos中,则会造成拥挤?


【注意】:在单台虚拟机这一前提范围内:①部署分片副本集的三个主结点或三个仲裁结点,会导致该台虚拟机负载过大或负载空闲。②每台虚拟机有已占用的端口号,要避免出现端口冲突的情况。(P147)

问3:对于“表 5-1 服务端口号的分配情况”可不可以把相同的端口号放在同一个shard上?比如shard1下全是27018主结点、27018副结点、27018仲裁结点。(P148)

答:注意表里其实是三台虚拟机,并没有违反“注意”中单台虚拟机不可有三个主结点或端口号冲突这样的前提。我们可以设置shard1下全是27018主、27018副、27018仲裁,shard2下全是27019主、27019副、27019仲裁,shard3下全是27020主、27020副、27020仲裁这样的端口号名称,但是这样设置3×3共9个名称下容易混乱,出于开发者角度不建议这样做。不如直接通过27018主、27019副、27020仲裁名称就可以确定结点类型。


问4:一些指令的含义。(P149-P154)

答:

(P149)$touch:若此文件不存在,则创建新文件;若此文件存在,则更新访问时间;

(P150)$tar:解压;$mv:重命名解压的文件名字;$scp:远程拷贝文件;(P151)vi:编辑器。

【注意】:P152启动Config Server命令为“$ ./mongod”,P159启动Shard命令为“$ ./mongod”,P162启动mongos服务命令为“$ ./mongos”,前两个与后一个已经不是同一个软件的操作了。

mongod是MongoDB的存储引擎,它将数据存储在磁盘上,并提供高性能的读写操作。作为MongoDB的数据库服务器,mongod可以独立运行,也可以作为MongoDB副本集或分片集群的一部分。

mongos进程通常运行在应用程序服务器上,并与客户端应用程序进行交互。它将查询请求解析为MongoDB的内部命令,并将它们发送到适当的分片服务器执行。mongos还负责处理分片集群中的优雅迁移、负载均衡和错误处理。


问5:5.4.4 部署Shard-创建配置文件中,一共有几个实例?(P154)

答:实例启动了9次。服务器nosql01、nosql02、nosql03分别配置了3个文件。


5.7课后习题答案(标注页数为书中对应答案出处)

一、填空题

1.MongoDB分片(P143) 2.数据存储(P143) 3.划分(P143) 4.分片逻辑(P143) 5.哈希分片(P144)

二、判断题

1.√(P143) 2.×(P144) 3.×(P144) 4.√(P145) 5.×(P146)

三、选择题

1.D(P145) 2.A(P144-145) 3.B(P145)


以上为《NoSQL》数据库技术与应用(版次:2020年10月第1版,印次:2023年8月第8次印刷) 第五章MongoDB分片 相关衍生问题与回答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值