Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

DAX 适用于 Go 的软件开发工具包

要在 Amazon EC2 实例上运行 DynamoDB Accelerator (DAX) 适用于 Go 的软件开发工具包 示例应用程序,请执行以下过程:

  1. 在您的 Amazon EC2 实例上设置 适用于 Go 的软件开发工具包:

    1. 安装 Go 编程语言 (Golang):

      sudo yum install -y golang
    2. 设置 GOPATH 环境变量:

      # GOROOT is the location where Go package is installed on your system export GOROOT=/usr/lib/golang # GOPATH is the location of your work directory export GOPATH=$HOME/projects # PATH in order to access go binary system wide export PATH=$PATH:$GOROOT/bin

      注意

      上述命令仅为当前会话设置环境变量。要使这些设置成为永久设置,请在 ~/.bash_profile 文件中添加命令。

    3. 测试 Golang 是否已安装且运行正常:

      go version

      将会出现以下消息:

      go version go1.9.6 linux/amd64/

  2. 安装 DAX Golang 客户端:

    go get github.com/aws/aws-sdk-go git -C $GOPATH/src/github.com/aws/aws-sdk-go checkout v1.15.84 go get github.com/aws/aws-dax-go
  3. 安装 Golang 示例应用程序:

    go get github.com/aws-samples/aws-dax-go-sample
  4. 运行以下 Golang 程序:

    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command create-table
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command put-item

    第一个程序将创建一个名为 TryDaxGoTable 的 DynamoDB 表。第二个程序将向表中写入数据。

  5. 运行以下 Golang 程序:

    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command get-item
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command query
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command scan

    记下计时信息 - GetItemQueryScan 测试所需的时间(以毫秒为单位)。

  6. 在上一步中,您已针对 DynamoDB 终端节点运行程序。现在,重新运行这些程序 — 但此次,GetItemQueryScan 操作将由 DAX 集群处理。

    要确定 DAX 集群的终端节点,请选择下列选项之一:

    • 使用 DynamoDB 控制台 — 选择您的 DAX 集群。集群终端节点将显示在控制台中,例如:

      mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111
    • 使用 AWS CLI — 键入以下命令:

      aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"

      集群终端节点端口和地址显示在输出中,例如:

      { "Port": 8111, "Address":"mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com" }

    现在重新运行这些程序 — 但此次,将集群终端节点指定为命令行参数:

    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dax -command get-item -endpoint mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dax -command query -endpoint mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111
    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dax -command scan -endpoint mycluster.frfx8h.clustercfg.dax.usw2.amazonaws.com:8111

    查看输出的其余内容,并记下计时信息。与使用 DynamoDB 相比,使用 DAX 时,GetItemQueryScan 的运行时间应明显更短。

  7. 运行以下 Golang 程序以删除 TryDaxGoTable

    go run $GOPATH/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command delete-table