gpt4 book ai didi

testing - 设置重复的mongodb测试环境

转载 作者:行者123 更新时间:2023-11-28 20:32:53 29 4
gpt4 key购买 nike

我想知道对于我在为我们的团队设置沙箱环境时遇到的问题,社区最推荐的是什么。

目前,我们使用两个单独的 MongoDB 实例,均为 3 个成员副本集,分别用于我们的测试和部署环境。内部人士普遍认为,测试环境中的所有数据大部分都是一次性的,并且只是由开发人员在对应用程序进行单元测试的过程中创建的。

我想为开发团队提供使用真实实时数据进行测试的新选项,但要在单独的安全沙箱实例中进行。起初,我最初认为我可以只使用 copyDatabase 命令每晚将数据复制到一个新数据库中,并将各个开发人员应用程序服务器连接到这个数据库。问题是系统中有大量 GridFS 数据,像这样复制会浪费大量磁盘 i/o,而且我们在较小的云实例中运行。

我对走这条路持谨慎态度,尤其是在有更合适的替代方案的情况下。

是否有可能,例如,设置部署副本集的第四个成员,它只作为从节点运行,将所有查询设置为 slaveOkay = True 并针对该单个节点运行测试?这会传播回其他成员吗?如何处理插入?

我的建议可能不切实际,特别是如果传输必须跨越网络,这也会浪费网络传输。有没有人曾经解决过类似的问题?谢谢!

最佳答案

Slave 仅用于读取。所有写入都必须交给master。这排除了您的“第四个奴隶”选项。

至于测试目的,您真的需要包含所有 gridfs 数据的数据库的精确副本吗?我会尝试只复制“大量”数据的相关部分。这排除了 db.copyDatabase() :) 改为执行 mongodump/mongorestore

此外,我想指出测试数据库和暂存数据库应该是不同的数据库。测试数据库用于单元测试(使用模拟/生成的数据)。暂存数据库填充了生产数据,用于集成/验收测试。

关于testing - 设置重复的mongodb测试环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10685737/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com