

# Go 的默认客户端配置
<a name="DAX-client-config-Go"></a>

本指南将引导您完成配置选项，这些选项可让您微调 DAX 客户端的性能、连接管理和日志记录行为。通过了解默认设置以及如何对其进行自定义，您可以优化 Go 应用程序与 DAX 的交互。

**Topics**
+ [DAX Go SDK 客户端默认值](#DAX-client-config-Go-sdk-client-defaults)
+ [客户端创建](#DAX-client-config-Go-client-creation)

## DAX Go SDK 客户端默认值
<a name="DAX-client-config-Go-sdk-client-defaults"></a>


| 参数 | 类型 | 说明 | 
| --- | --- | --- | 
| `Region`<br />必需 | `string` | 要用于 DAX 客户端的 AWS 区域（示例：“us-east-1”）。如果未通过环境提供，则这是必需的参数。 | 
| `HostPorts`<br />必需 | `[] string` | SDK 连接到的 DAX 集群端点的列表。<br />例如：<br />未加密：dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com<br />已加密：daxs://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com | 
| `MaxPendingConnectionsPerHost`<br />默认值 10 | `number` | 并发连接尝试次数。（可能同时正在建立连接。） | 
| `ClusterUpdateThreshold`<br />默认值 125 \* time.Millisecond | `time.Duration` | 两次集群刷新之间必须经过的最短时间。 | 
| `ClusterUpdateInterval`<br />默认值 4 \* time.Second | `time.Duration` | 客户端自动刷新 DAX 集群信息的间隔。 | 
| `IdleConnectionsReapDelay`<br />默认值 30 \* time.Second | `time.Duration` | 客户端关闭 DAX 客户端中空闲连接的间隔。 | 
| `ClientHealthCheckInterval`<br />默认值 5 \* time.Second | `time.Duration` | 客户端对 DAX 集群端点执行运行状况检查的间隔。 | 
| `Credentials`<br />默认 | `aws.CredentialsProvider` | DAX 客户端用于对面向 DAX 服务的请求进行身份验证的 AWS 凭证。请参阅 [Credentials and Credential Providers](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/migrate-gosdk.html#credentials--credential-providers)。 | 
| `DialContext`<br />默认 | `func` | DAX 客户端用来建立与 DAX 集群的连接的自定义函数。 | 
| `SkipHostnameVerification`<br />默认值 false | 布尔 | 跳过 TLS 连接的主机名验证。此设置仅影响加密的集群。设置为 True 时，它将禁用主机名验证。禁用验证意味着您无法对正在连接的集群的身份进行验证，这会带来安全风险。默认情况下，主机名验证处于启用状态。 | 
| `RouteManagerEnabled`<br />默认值 false | `bool` | 此标志用于移除面临网络错误的路由。 | 
| `RequestTimeout`<br />默认值 60 \* time.Second | `time.Duration` | 这定义了客户端等待来自 DAX 的响应的最长时间。<br />优先级：上下文超时（如果已设置）> `RequestTimmeout`（如果已设置）> 默认 60 秒 `RequestTimeout`。 | 
| `WriteRetries`<br />默认值 2 | `number` | 尝试对失败的写入请求进行重试的次数。 | 
| `ReadRetries`<br />默认值 2 | `number` | 尝试对失败的读取请求进行重试的次数。 | 
| `RetryDelay`<br />默认值 0 | `time.Duration` | 当请求失败时重试尝试的非限制错误延迟（以秒为单位）。 | 
| `Logger`<br />optional | `logging.Logger` | Logger 是一个用于记录特定分类条目的界面。 | 
| `LogLevel`<br />默认值 utils.LogOff | `number` | 此日志级别仅针对 DAX 定义。可以使用 [github.com/aws/aws-dax-go-v2/tree/main/dax/utils](https://github.com/aws/aws-dax-go-v2/tree/main/dax/utils) 导入它。<pre>const (    <br /> LogOff LogLevelType = 0   <br /> LogDebug LogLevelType = 1   <br /> LogDebugWithRequestRetries<br /> LogLevelType = 2<br />)</pre> | 

**注意**  
对于 `time.Duration`，默认单位为纳秒。如果我们没有为任何参数指定任何单位，那么它会将其视为纳秒：`daxCfg.ClusterUpdateInterval = 10` 表示 10 纳秒。（`daxCfg.ClusterUpdateInterval = 10 * time.Millisecond` 表示 10 毫秒）。

## 客户端创建
<a name="DAX-client-config-Go-client-creation"></a>

**创建 DAX 客户端：**
+ 创建 DAX 配置，然后使用 DAX 配置创建 DAX 客户端。使用它，您可以根据需要覆盖 DAX 配置。

  ```
  import (
  "github.com/aws/aws-dax-go-v2/dax/utils"
  "github.com/aws/aws-dax-go-v2/dax"
  )
  
  // Non - Encrypted : 'dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com'.
  // Encrypted : daxs://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com'.
  
  config := dax.DefaultConfig()
  config.HostPorts = []string{endpoint}
  config.Region = region
  config.LogLevel = utils.LogDebug
  daxClient, err := dax.New(config)
  ```