MongoDB + Azure + Android:com.mongodb.WriteConcernException err:“非主用户”代码:“10058”

MongoDB + Azure + Android:com.mongodb.WriteConcernException err:“非主用户”代码:“10058”,第1张

MongoDB + Azure + Android:com.mongodb.WriteConcernException err:“非主用户”代码:“10058”

如果所有实例都位于单个负载均衡

Input
端点(例如27017)后面,那么每次您的客户端计算机连接到该端点时,它将连接到副本集群集中可能不同的节点上(并且您无法控制您去过哪个实例)。这可能可以解释为什么您有时会尝试向非主节点写入并得到错误,但所有读取仍然有效(因为您可能将MongoDB集群设置为允许在辅助节点上进行读取)。

辅助角色还支持

InstanceInput
端点,这些端点使您可以设置一个面向外部的端口范围(例如27017-27019),映射到辅助实例自身上的单个端口(例如27017)。如果执行此 *** 作,您的客户端应用程序现在可以直接连接到所有三个实例(27017、27018、27019)。许多驱动程序支持副本集连接,因此它将能够确定哪个节点是主节点,并将所有写入均定向到该节点。
我不知道您在Android上使用的驱动程序是否支持副本集。
如果驱动程序不支持副本集,则您可能需要考虑建立一个API层,该层随后将所有通信传递给数据库(无论如何,通常遵循的一种良好做法是,您可以查看Azure的移动服务一种快速的实现方法)。

因此…如果将副本集群集的端点配置为

Input
,则可能解释了您所看到的问题,可以通过将端点类型切换为来解决该问题
InstanceInput



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5507476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存