gpt4 book ai didi

python - 为什么使用 python 的 cassandra-driver 连接到 AWS keyspaces 这么慢?

转载 作者:行者123 更新时间:2023-12-02 02:20:27 29 4
gpt4 key购买 nike

我有一个 API,是一个部署在 AWS EC2 上的带有 python 的 flask 应用程序。某些端点需要连接到 AWS Keyspace 才能进行查询。但是 cluster.connect() 方法太慢了,需要 5 秒连接然后运行查询。

我为解决它所做的是在应用程序启动时启动连接(当在主分支上完成提交时,我使用的是 CodePipeline),然后连接一直打开。

我在 python cassandra 驱动程序文档中没有找到任何反对此的内容,我发现的这个解决方案是否存在任何潜在问题?

最佳答案

能否提供当前的连接配置?

Amazon Keyspaces 默认使用传输层安全 (TLS) 通信。如果您不提供连接证书,添加它可以帮助加快速度。有关完整示例,请查看 Keyspaces Python Sample

您也可以尝试禁用以下选项,这应该可以加快初始连接速度。

schema_metadata_enabled = False
token_metadata_enabled = False

Python Driver Documentation

    from cassandra.cluster import Cluster
from ssl import SSLContext, PROTOCOL_TLSv1_2 , CERT_REQUIRED
from cassandra.auth import PlainTextAuthProvider
import boto3
from cassandra_sigv4.auth import SigV4AuthProvider

ssl_context = SSLContext(PROTOCOL_TLSv1_2)
ssl_context.load_verify_locations('path_to_file/sf-class2-root.crt')
ssl_context.verify_mode = CERT_REQUIRED

boto_session = boto3.Session()
auth_provider = SigV4AuthProvider(boto_session)

cluster = Cluster(['cassandra.us-east-2.amazonaws.com'], ssl_context=ssl_context, auth_provider=auth_provider,
port=9142)

cluster.schema_metadata_enabled = False
cluster.token_metadata_enabled = False

session = cluster.connect()
r = session.execute('select * from system_schema.keyspaces')
print(r.current_rows)

关于python - 为什么使用 python 的 cassandra-driver 连接到 AWS keyspaces 这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66496938/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com