Go 的預設用戶端組態 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Go 的預設用戶端組態

本指南將逐步解說組態選項,協助您微調 DAX 用戶端效能、連線管理和日誌記錄行為。了解預設設定以及如何自訂這些設定後,您就可以最佳化 Go 應用程式與 DAX 的互動。

DAX Go SDK 用戶端預設值

參數 類型 說明

Region

必要

string

AWS 區域 用於 DAX 用戶端的 (example- 'us-east-1')。如果未透過環境提供,則此為必要參數。

HostPorts

必要

[] string

SDK 連線的 DAX 叢集端點清單。

例如:

未加密:dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com

加密:daxs://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com

MaxPendingConnectionsPerHost

預設 10

number

並行連線嘗試次數 (可同時建立的連線。)

ClusterUpdateThreshold

預設 125 * time.Millisecond

time.Duration

叢集重新整理之間必須經過的最短時間。

ClusterUpdateInterval

預設 4 * time.Second

time.Duration

用戶端自動重新整理 DAX 叢集資訊的間隔。

IdleConnectionsReapDelay

預設 30 * time.Second

time.Duration

用戶端在 DAX 用戶端中關閉閒置連線的間隔。

ClientHealthCheckInterval

預設 5 * time.Second

time.Duration

用戶端在 DAX 叢集端點執行運作狀態檢查的間隔。

Credentials

預設

aws.CredentialsProvider

DAX 用戶端用來驗證 DAX 服務請求的 AWS 登入資料。請參閱憑證和憑證供應者

DialContext

預設

func

DAX 用戶端用來建立 DAX 叢集連線的自訂函式。

SkipHostnameVerification

預設 false

bool

略過 TLS 連線的主機名稱驗證。此設定只會影響加密的叢集。設定為 True 時,會停用主機名稱驗證。停用驗證表示您無法驗證所連線叢集的身分,會造成安全風險。預設會啟用主機名稱驗證。

RouteManagerEnabled

預設 false

bool

此旗標用於移除面向網路的路由錯誤。

RequestTimeout

預設 60 * time.Second

time.Duration

這用於定義用戶端等待 DAX 回應的時間上限。

優先順序:內容逾時 (如果設定) > RequestTimmeout (如果設定) > 預設 60 秒 RequestTimeout

WriteRetries

預設 2

number

寫入請求失敗時的重試次數。

ReadRetries

預設 2

number

讀取請求失敗時的重試次數。

RetryDelay

預設 0

time.Duration

請求失敗重試時的非限流錯誤延遲 (以秒為單位)。

Logger

選擇性

logging.Logger

Logger 是以日誌記錄特定分類項目的介面。

LogLevel

預設 utils.LogOff

number

此日誌層級僅針對 DAX 定義。您可以使用 github.com/aws/aws-dax-go-v2/tree/main/dax/utils 匯入。

const ( LogOff LogLevelType = 0 LogDebug LogLevelType = 1 LogDebugWithRequestRetries LogLevelType = 2 )
注意

對於 time.Duration,預設單位為奈秒。如果我們沒有為任何參數指定任何單位,則會將其視為奈秒:daxCfg.ClusterUpdateInterval = 10 表示 10 奈秒。(daxCfg.ClusterUpdateInterval = 10 * time.Millisecond 表示 10 毫秒)。

建立用戶端

如欲建立 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)