azure - 有没有办法在 Cosmos DB Java V4 API 中读取数据库链接?
问题描述
例如,读取“dbs/colls/document”而不是获取容器,然后在容器上调用 read。
我一直有一个问题,readItem
容器上的第一个(调用后database.getContainer(x)
)非常慢(比如 1 秒或更长),并且认为使用数据库链接可能会更快。
我猜在获取容器后读取速度很慢,因为在我调用 read 之前它不会进行服务调用。
在数据库中读取时,有没有办法可以预加载它?
我有一个带有 read(collectionName, key) 方法的应用程序,我的方法是使用 getContainer(collectionName) 然后调用 read ,但是这个方法需要很快。
解决方案
如前所述,最佳实践是在请求之间保持容器实例处于活动状态,并在每个请求上调用 readItem。这应该可以解决主要问题。
至于次要问题,“每 50 个请求左右的高延迟”,这是一个已知问题,但它应该只发生在操作的第一分钟左右。如果您可以容忍最初的缓慢请求,则解决方案是等待性能稳定。在您不再看到这些高延迟请求之前,您必须运行您的应用程序多长时间?
仅供参考,如果延迟是一个问题,请在地理上托管的 Azure VM 中运行您的客户端应用程序。一个好的经验法则是分配客户端 CPU 内核,使 CPU 利用率不超过 40% 或 50%。
推荐阅读
- javascript - 反应选择异步获取
- python - 处理XML标签并提取对应的标签内容
- jquery - 单击复选框标签时出现问题
- ruby-on-rails - 页面刷新后如何一次保持多个复选框的真实值
- encoding - 如何在 Octave 中检测文件编码?
- javascript - “Jwplayer 不加载 ts 文件只加载 m3u8 文件”
- php - 我在使用手机登录 WordPress 仪表板时遇到问题
- angular - 角度不同的数据源到单个材料表
- cocoa - 如何在短语中本地化国家名称?
- ruby-on-rails - 如何在 Ruby on rails 中获取验证错误消息?