我有一个 FastAPI 应用程序,它使用
azure-cosmos
库将数据存储在 CosmosDB 中。我预计会有大量流量,因此我想创建一个异步 CosmosDB 客户端池。
这是 azure-cosmos 库支持的吗?我似乎找不到任何使用 Cosmos DB 连接池的示例。拥有一个异步 CosmosDB 客户端池是否有意义?或者一个连接可以处理大量流量吗?
如果 azure-cosmos 没有对连接池的直接支持,但拥有一个连接池是有意义的,那么是否有一个通用库可以帮助维护连接池?
所以,我认为Python中的azure-cosmos库并不直接提供连接池。但如果您预计会有大量流量,那么拥有异步 CosmosDB 客户端池可能会非常有帮助。这就像有多个朋友随时准备提供帮助,而不是仅仅依靠一个呵呵。
您管理这些连接,确保它们得到有效利用并顺利处理流量。虽然 azure-cosmos 没有内置- Python 中的连接池示例:
from azure.cosmos.aio import CosmosClient
class CosmosConnectionPool:
def __init__(self, endpoint, key):
self.endpoint = endpoint
self.key = key
self.connections = []
async def acquire(self):
if not self.connections:
connection = CosmosClient(self.endpoint, self.key)
else:
connection = self.connections.pop()
return connection
def release(self, connection):
self.connections.append(connection)