您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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

因此…如果将副本集群集的端点配置为Input,则可能解释了您所看到的问题,可以通过将端点类型切换为来解决该问题InstanceInput

mongodb 2022/1/1 18:29:15 有533人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶