如何配置和自定义用于 Azure Cosmos DB 的 Go SDK

主要观点:

  • Go SDK for Azure Cosmos DB 基于核心 Azure Go SDK 包构建,可高度定制,创建新 Cosmos DB 客户端对象时可使用 ClientOptions 结构体进行配置。
  • 涵盖了在使用 Go SDK for Cosmos DB 构建应用时如何利用和扩展常见选项,如重试策略、非重试错误、可配置重试、故障注入、HTTP 级定制、OpenTelemetry 支持及其他指标等。

关键信息和重要细节:

  • 重试策略:SDK 处理常见重试场景,不同错误类型有不同重试逻辑,如网络连接错误、403 forbidden、404 not found、503 service unavailable 等。通过代码示例展示了非重试错误(如读取不存在的数据库)和可重试错误(如使用无效账户端点创建客户端)的情况及日志输出。还可自定义重试策略,如设置最大重试次数和重试延迟。
  • 故障注入:创建自定义策略模拟网络错误,将其注入请求管道,代码示例展示了每次请求因模拟网络错误而失败,SDK 记录重试及延迟情况。
  • HTTP 级定制:在本地使用 Cosmos DB 模拟器时,可通过设置 TLSClientConfig.InsecureSkipVerify: true 跳过证书验证进行本地测试,也可实现自定义 HTTP 头添加到所有请求。
  • OpenTelemetry 支持:Azure Go SDK 通过 azotel 包支持分布式追踪,可配置 TracingProvider 启用自动传播跟踪上下文和发送跨度,示例展示了创建带有追踪功能的 Cosmos DB 客户端及追踪操作。
  • 其他指标:执行查询时可通过 QueryItemsResponse.QueryMetrics 获取基本查询执行指标,以简单的键值格式提供,包含各种查询执行相关的时间和数量等信息。

总结:Go SDK for Azure Cosmos DB 设计灵活可定制,本文详细介绍了多种配置和定制方式及相关代码示例,可参考相关文档和 GitHub 仓库获取更多信息。

阅读 5
0 条评论