我有一个使用 Mongo 4.2 的应用程序,运行正常。我正在将它升级到 Mongo 4.4(我唯一的变化是我已经在我的 docker-compose 中更改了那个版本)并且我现在得到以下错误
ERROR - ChangeStream(DtaSystem) failure (retry 2): mongo:27017: [Errno -2] Name or
service not known, Timeout: 30s, Topology Description: <TopologyDescription id:
64637f453b6db73ab7c869ea, topology_type: Single, servers: [<ServerDescription ('mongo',
27017) server_type: Unknown, rtt: None, error=AutoReconnect('mongo:27017: [Errno -2]
Name or service not known')>]> - {"name": "dta", "args": null, "levelname": "ERROR",
"levelno": 40, "pathname": "/opt/app/src/common/database/changestream.py", "filename":
"changestream.py", "module": "changestream", "exc_info": null, "exc_text": "Traceback
(most recent call last):\n File \"/opt/app/src/common/database/changestream.py\", line
61, in run\n async with self._collection.watch(full_document=\"updateLookup\") as
self._cursor:\n File \"/usr/local/lib/python3.10/site-packages/motor/core.py\", line
1784, in __aenter__\n await self._framework.run_on_executor(loop, self._lazy_init)\n
File \"/usr/local/lib/python3.10/concurrent/futures/thread.py\", line 58, in run\n
result = self.fn(*self.args, **self.kwargs)\n File \"/usr/local/lib/python3.10/site-
packages/motor/core.py\", line 1665, in _lazy_init\n self.delegate =
self._target.delegate.watch(\n File \"/usr/local/lib/python3.10/site-packages/pymongo
/collection.py\", line 2846, in watch\n return CollectionChangeStream(\n File \"/usr
/local/lib/python3.10/site-packages/pymongo/change_stream.py\", line 120, in __init__\n
self._cursor = self._create_cursor()\n File \"/usr/local/lib/python3.10/site-packages
/pymongo/change_stream.py\", line 209, in _create_cursor\n with
self._client._tmp_session(self._session, close=False) as s:\n File \"/usr/local
/lib/python3.10/contextlib.py\", line 135, in __enter__\n return next(self.gen)\n
File \"/usr/local/lib/python3.10/site-packages/pymongo/mongo_client.py\", line 2040, in
_tmp_session\n s = self._ensure_session(session)\n File \"/usr/local/lib/python3.10
/site-packages/pymongo/mongo_client.py\", line 2027, in _ensure_session\n return
self.__start_session(True, causal_consistency=False)\n File \"/usr/local/lib/python3.10
/site-packages/pymongo/mongo_client.py\", line 1976, in __start_session\n
server_session = self._get_server_session()\n File \"/usr/local/lib/python3.10/site-
packages/pymongo/mongo_client.py\", line 2013, in _get_server_session\n return
self._topology.get_server_session()\n File \"/usr/local/lib/python3.10/site-packages
/pymongo/topology.py\", line 525, in get_server_session\n session_timeout =
self._check_session_support()\n File \"/usr/local/lib/python3.10/site-packages/pymongo
/topology.py\", line 507, in _check_session_support\n self._select_servers_loop(\n
File \"/usr/local/lib/python3.10/site-packages/pymongo/topology.py\", line 226, in
_select_servers_loop\n raise
ServerSelectionTimeoutError(\npymongo.errors.ServerSelectionTimeoutError: mongo:27017:
[Errno -2] Name or service not known, Timeout: 30s, Topology Description:
<TopologyDescription id: 64637f453b6db73ab7c869ea, topology_type: Single, servers:
[<ServerDescription ('mongo', 27017) server_type: Unknown, rtt: None,
error=AutoReconnect('mongo:27017: [Errno -2] Name or service not known')>]>",
"stack_info": null, "lineno": 74, "funcName": "run", "created": 1684242275.858626,
"msecs": 858.0, "relativeCreated": 32486.500024795532, "thread": 140485789865792,
"threadName": "MainThread", "processName": "MainProcess", "process": 16, "queue_name":
"Main dta-services context", "time_millis": 1684242275858, "message":
"ChangeStream(DtaSystem) failure (retry 2): mongo:27017: [Errno -2] Name or service not
known, Timeout: 30s, Topology Description: <TopologyDescription id:
64637f453b6db73ab7c869ea, topology_type: Single, servers: [<ServerDescription ('mongo',
27017) server_type: Unknown, rtt: None, error=AutoReconnect('mongo:27017: [Errno -2] Name
or service not known')>]>"}
看起来我们需要在 4.4 中定义 ChangeStreams 的方式发生了变化,它不向后兼容 4.2,但我在文档中找不到任何内容。
这是否记录在某处/你知道我们需要在我的配置中更改什么吗?