如何在 FastAPI 应用程序中维护异步 CosmosDB 连接池?

问题描述 投票:0回答:1

我有一个 FastAPI 应用程序,它使用

azure-cosmos
库将数据存储在 CosmosDB 中。我预计会有大量流量,因此我想创建一个异步 CosmosDB 客户端池。

这是 azure-cosmos 库支持的吗?我似乎找不到任何使用 Cosmos DB 连接池的示例。拥有一个异步 CosmosDB 客户端池是否有意义?或者一个连接可以处理大量流量吗?

如果 azure-cosmos 没有对连接池的直接支持,但拥有一个连接池是有意义的,那么是否有一个通用库可以帮助维护连接池?

python azure-cosmosdb fastapi
1个回答
0
投票

所以,我认为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)

© www.soinside.com 2019 - 2024. All rights reserved.