这是一个试图玩Mongodb的新手。我试图在我的课程中演示缩放,这意味着,我需要证明我有2个mongoDB实例启动并运行,我需要复制它们,将一个设置为主设备,另一个设置为辅助设备。
你们中的任何人都可以建议我一个简单的方法来证明如果主要/主人失败,奴隶/次要成为主人吗?
请尽可能简单,因为我正在向相当初学的MongoDB教学
答案 0 :(得分:1)
MongoDB replica sets 不主/从。为了实现自动故障转移,您需要让副本集中的大多数节点能够选择新的主节点。副本集中的最小节点数应为3,可以是3个数据承载节点或2个数据承载节点,也可以是arbiter,这是在选举中投票的节点。
单独使用复制的演示更多是关于故障转移和冗余而不是缩放(更好的演示'以及分片)。
如果您想要一种非常简单(并且非生产)方式在开发环境中站立副本集或分片群集,我建议使用mlaunch
脚本mtools的一部分。
例如,要使用仲裁器创建3节点副本集:
mlaunch --replicaset --nodes 2 --arbiter
创建一个分片群集,其中包含由副本集(加mongos
和配置服务器)支持的3个分片:
mlaunch --replicaset --sharded 3
正如此处其他评论中所述,免费MMS Monitoring服务是可视化MongoDB部署中活动的好方法,您可以使用db.shutdownServer()
关闭特定节点以查看结果。< / p>
答案 1 :(得分:0)
最简单的方法是设置MongoDB monitoring service。在一个上停止MongoD进程并观察另一个接管。但是,使用副本集而不是主副本,因为它们是the recommended approach。
答案 2 :(得分:0)
实际上,这很容易
mongod
和仲裁者mongod
mongo
rs.status()
的输出。 (请注意self
字段)rs.status()
的输出,直到前一个中学被选为主要另一种选择是编写一个利用驱动程序的简单java应用程序,将其置于无限循环中,每秒写入一个条目并输出数据库中的对象数。捕获异常并写出发生了问题。启动分片群集,然后启动应用程序。程序运行时关闭主服务器。在选举期间,可能会有例外情况被抛出。一旦前中学被选为初选,文件计数应该再次开始上升。