我的 mongo db 有一个主节点和两个辅助节点。
写入时需要注意哪个节点是主节点吗?
或者 mongo db 是否自动将写操作从辅助节点重定向到主节点?
这里讨论了类似的问题,但我的问题没有得到明确的回答:在主从 Mongo 数据库集中,如果您不小心写入辅助数据库,它会反映在主数据库中,它会被路由到主数据库 https://stackoverflow.com/questions/15443814/in-a-primary-secondary-mongo-db-set-if-you-accidentally-write-to-a-secondary-wou
这实际上是关于如何将连接字符串配置到副本集以及驱动程序如何正确“发现”成员。
为了具体涵盖对所引用问题所做的陈述,不可能写入辅助设备,因为写入只能写入集合内的主设备。如果主节点发生故障,new初级需要选举。在选举期间,写操作将fail因为目前没有主要服务他们。
至于驱动程序“如何”确定哪个是当前“主要”的具体机制,请参阅驱动程序实现的元规范 http://docs.mongodb.org/meta-driver/latest/legacy/connect-driver-to-replica-set/.
但一般情况是,只要您指定“足够”的可能主机来联系副本集(对于三个节点来说,所有这些主机都是一个很好的情况),那么驱动程序就能够“检查”成员并确定哪一个是“主要的”并且可以写入。
因此,“故障转移”是副本集配置的一部分,“检测”是由驱动程序完成的,驱动程序可以与“至少一个节点”对话并要求返回哪个节点是当前的主节点,以便可以然后用于将来的写操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)