Ruby MongoDB实例失败测试
我正在研究,我想知道如何测试mongo实例失败、副本集投票(主要失败)和其他类似的东西 例如。客户端应建立到副本集的连接。然后primary失败,客户端应该找到下一个primary并将所有查询重定向到那个里 可能有mongodb命令来暂停/恢复实例。或者我应该分叉进程和sigstop/sigcont(但这将是依赖于操作系统的解决方案) UPD 刚才看了一下mongodb ruby驱动程序是如何做到这一点的Ruby MongoDB实例失败测试,ruby,mongodb,testing,Ruby,Mongodb,Testing,我正在研究,我想知道如何测试mongo实例失败、副本集投票(主要失败)和其他类似的东西 例如。客户端应建立到副本集的连接。然后primary失败,客户端应该找到下一个primary并将所有查询重定向到那个里 可能有mongodb命令来暂停/恢复实例。或者我应该分叉进程和sigstop/sigcont(但这将是依赖于操作系统的解决方案) UPD 刚才看了一下mongodb ruby驱动程序是如何做到这一点的 根据我在测试Mongo副本集时所做的工作,我可以给您一些建议,但我担心这对于在云中托管节点
根据我在测试Mongo副本集时所做的工作,我可以给您一些建议,但我担心这对于在云中托管节点来说是相当具体的。也许你可以从中拿走一些东西 假设已设置复制副本:
根据我在测试Mongo副本集时所做的工作,我可以给您一些建议,但我担心这对于在云中托管节点来说是相当具体的。也许你可以从中拿走一些东西 假设已设置复制副本:
最后,我实现了绑定到所需端口的假Mongodb服务器,并使用假查询回复进行应答。它还回答“isMaster”查询。因此,您可以随时停止主/辅操作,也可以启动下一个主/辅操作的投票,等等。这看起来是最好的选择,因为它大约有100行代码,在任何操作系统上都能完美工作。:)
最后,我实现了绑定到所需端口的假Mongodb服务器,对查询进行假应答。它还回答“isMaster”查询。因此,您可以随时停止主/辅操作,也可以启动下一个主/辅操作的投票,等等。这看起来是最好的选择,因为它大约有100行代码,在任何操作系统上都能完美工作。:)
嗨,瑞安,谢谢你的回复!但我问过如何在我的功能/单元测试中模拟实例的失败,这样任何运行测试的人都会对任何操作系统感到满意。而不是嘲笑。不管怎样,你写的东西现在对我很有用!哦,对不起。我会检查嵌入式Mongo,以便在单元/功能测试中进行模拟。嗯,埃德蒙戈看起来很有前途!谢谢你,瑞安,谢谢你的回复!但我问过如何在我的功能/单元测试中模拟实例的失败,这样任何运行测试的人都会对任何操作系统感到满意。而不是嘲笑。不管怎样,你写的东西现在对我很有用!哦,对不起。我会检查嵌入式Mongo,以便在单元/功能测试中进行模拟。嗯,埃德蒙戈看起来很有前途!谢谢