SuperAPI AI 工具集

cosmosdb-sdk

编程与开发

查看项目

更新于 10-15 17:23

技能介绍

用途:本技能汇总 Azure Cosmos DB 在多语言 SDK(.NET、Java、Python、Go、Spring Boot)中的最佳实践,以及本地开发与模拟器工具的使用规范。适用于配置 Cosmos DB 客户端、排查连接与吞吐问题、搭建本地开发环境时参考。

主要能力:

  • 客户端管理:将 CosmosClient 作为单例复用(sdk-singleton-client);生产环境使用 Direct 连接模式(sdk-connection-mode)。
  • 性能与可用性:使用异步 API 提升吞吐(sdk-async-api);配置基于阈值的可用性策略(对冲,sdk-availability-strategy)、分区级熔断(sdk-circuit-breaker)、首选区域(sdk-preferred-regions)与排除区域实现动态故障转移(sdk-excluded-regions)。
  • 并发与一致性:用 ETag 实现乐观并发(sdk-etag-concurrency);用 IfNoneMatchETag("*") 做条件创建防止重复(sdk-conditional-create-etag);用 Patch API 原子递增计数器(sdk-patch-counter-increment)。
  • 错误处理:按 Retry-After 处理 429(sdk-retry-429);启用诊断日志(sdk-diagnostics);调用 byPage 前对空 continuation token 做防护(sdk-continuation-token-null-guard)。
  • 语言细节:.NET 使用 Microsoft.Azure.Cosmos 包而非已废弃的 Azure.Cosmos(sdk-dotnet-cosmos-package-id),避免命名空间冲突(sdk-dotnet-namespace-collision),显式引用 Newtonsoft.Json(sdk-newtonsoft-dependency);Java 需解包 CosmosItemResponse 并启用内容响应(sdk-java-content-response),Spring Boot 用依赖 @Bean 初始化(sdk-java-cosmos-config),注意 Spring Boot 与 Java 版本兼容(sdk-java-spring-boot-versions),并用 @Container、@PartitionKey 与 String 类型 ID 标注实体(sdk-spring-data-annotations),正确使用 CosmosRepository 并处理 Iterable 返回(sdk-spring-data-repository);Python 异步 SDK 需包含 aiohttp(sdk-python-async-deps);Go SDK 使用当前版本并显式指定分区键元数据(sdk-go-partition-key-metadata)。
  • 其他:每次调用使用独立请求选项,不共享 CosmosItemRequestOptions(sdk-request-options-per-call);SDK 与应用层保持一致的枚举序列化(sdk-serialization-enums);配置本地开发环境避免与云连接冲突(sdk-local-dev-config)。

开发工具:使用 Azure Cosmos DB Emulator 进行本地开发与测试(tooling-emulator-setup),并配置模拟器的 SSL 与连接模式(sdk-emulator-ssl);使用 Azure Cosmos DB VS Code 扩展进行日常查看与管理(tooling-vscode-extension)。

限制:资料未提供具体代码示例、版本号、价格或平台支持范围的完整细节,上述内容仅为规则标题层面的整理,实际实施需参考官方文档与对应 SDK 版本说明。