【问题标题】:pymongo atlas loadbalancer error ARM devicepymongo atlas loadbalancer错误ARM设备
【发布时间】:2022-04-01 04:16:11
【问题描述】:

我从运行 ubuntu 18.04 jetson 版本的 ARM 设备 (Jetson Xavier) 访问我的在线 mongo 数据库/集群时遇到 LoadBalancerSupportMismatch 错误。该代码适用于普通 x86 pc,并使用 python 3.6 运行(我在普通 pc 上使用 3.8)。 我的代码很简单。我匿名了其中的一部分。

self.online_client = MongoClient(
                    f"mongodb+srv://<user>:<passowrd>}@<dbname>.pkphq.mongodb.net/Xcontainers?retryWrites=true&w=majority")
self.cloud_coll = self.online_client[<dbname>][<collection>]
self.cloud_coll.insert_one(some_dict)

我在 jetson 上遇到的错误是:

文件“/usr/local/lib/python3.6/dist-packages/pymongo/collection.py”,第 1319 行,在 find_one 对于 cursor.limit(-1) 中的结果: 文件“/usr/local/lib/python3.6/dist-packages/pymongo/cursor.py”,第 1207 行,在下一个 如果 len(self.__data) 或 self._refresh(): _refresh 中的文件“/usr/local/lib/python3.6/dist-packages/pymongo/cursor.py”,第 1100 行 self.__session = self.__collection.database.client._ensure_session() _ensure_session 中的文件“/usr/local/lib/python3.6/dist-packages/pymongo/mongo_client.py”,第 1816 行 返回 self.__start_session(True, causal_consistency=False) 文件“/usr/local/lib/python3.6/dist-packages/pymongo/mongo_client.py”,第 1766 行,在 __start_session server_session = self._get_server_session() _get_server_session 中的文件“/usr/local/lib/python3.6/dist-packages/pymongo/mongo_client.py”,第 1802 行 返回 self._topology.get_server_session() 文件“/usr/local/lib/python3.6/dist-packages/pymongo/topology.py”,第 499 行,在 get_server_session 没有任何) _select_servers_loop 中的文件“/usr/local/lib/python3.6/dist-packages/pymongo/topology.py”,第 217 行 (self._error_message(选择器),超时,self.description)) pymongo.errors.ServerSelectionTimeoutError: 正在通过负载均衡器访问服务器,但此驱动程序没有启用负载均衡,完全错误:{'ok': 0, 'errmsg': '正在通过负载均衡器访问服务器, 但此驱动程序未启用负载平衡', 'code': 354, 'codeName': 'LoadBalancerSupportMismatch'}, Timeout: 30s, Topology Description: ]> [INFO] [1643027861.848502]:没有 id 来推送测量

我解决问题的小旅程把我带到了这里,这几乎是唯一似乎相关的东西:https://www.mongodb.com/community/forums/t/scala-driver-2-9-0-connection-fails-with-loadbalancersupportmismatch/126525/2。所以看起来scala驱动程序不是最新的。看来我需要使用 sbt 或 maven 更新它:http://mongodb.github.io/mongo-java-driver/4.3/driver-scala/getting-started/installation/ 我最近设置了硬件,它是最新的,所以有点令人费解为什么驱动程序不是最新的。

查看 sbt 和 maven 的文档;让 pymongo 与 mongo atlas 再次正常工作似乎在最坏的情况下完全不相关,在最好的情况下非常复杂。

有没有更好的解决方案来消除负载平衡器问题,或者让我的驱动程序保持最新?

【问题讨论】:

    标签: mongodb pymongo mongodb-atlas


    【解决方案1】:

    似乎升级集群有效。我首先使用了 M0 - M2 集群。为 M10 支付更多费用以某种方式解决了这个问题。

    【讨论】:

      【解决方案2】:

      有同样的问题,通过将 pymongo 升级到 3.12 版本来解决它,因为 this document 将其描述为无服务器集群的最低版本(这是我的情况)

      【讨论】:

        猜你喜欢
        • 2017-09-27
        • 1970-01-01
        • 1970-01-01
        • 2019-11-21
        • 1970-01-01
        • 2015-09-22
        • 2021-08-18
        • 2021-03-14
        • 1970-01-01
        相关资源
        最近更新 更多