【发布时间】: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