

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 与... 一起工作 DynamoDB
<a name="examples-dynamodb"></a>

[DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) 是一项完全托管式 NoSQL 数据库服务，提供快速且可预测的性能，能够实现无缝扩展。本节向您展示如何使用 适用于 Java 的 AWS SDK 2.x 来处理 DynamoDB。

## 选择您的 DynamoDB 客户端
<a name="ddb-clients-overview"></a>

SDK 提供了两种处理 DynamoDB 的主要方法：

低级别客户端（`DynamoDbClient`）  
通过完全控制请求和响应，提供对 DynamoDB 操作的直接访问。当您需要精细控制或使用动态架构时，请使用此客户端。

增强型客户端（`DynamoDbEnhancedClient`）  
通过 Java 对象和 DynamoDB 项目之间的自动映射，提供面向对象的编程。还提供了面向文档的功能，用于处理不遵循固定架构且类似 JSON 的数据。在处理定义明确的数据模型或文档类型数据时，请使用此客户端。

## 配置 DynamoDB 客户端
<a name="ddb-configuration-setup"></a>

在使用 DynamoDB 之前，请配置您的客户端以获得更好的性能和可靠性。

### 了解 DynamoDB 重试行为
<a name="ddb-retry-behavior"></a>

DynamoDB 客户端使用的默认最大重试次数为 8，该值高于其他 AWS 服务 客户端。这种较高的重试次数有助于应对 DynamoDB 的分布式特性和临时容量限制。有关重试策略的更多信息，请参阅[在中配置重试行为 AWS SDK for Java 2.x](retry-strategy.md)。

### 使用基于账户的端点来优化性能
<a name="ddb-account-based-endpoints-v2"></a>

DynamoDB [AWS 提供基于账户的](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.SDKOverview.html#Programming.SDKs.endpoints)终端节点，通过使用 AWS 您的账户 ID 来简化请求路由，从而提高性能。

要使用此功能，您需要使用 AWS SDK for Java 2.x的版本 2.28.4 或更高版本。您可以在 [Maven Central 存储库](https://central.sonatype.com/artifact/software.amazon.awssdk/bom/versions)中找到最新版本。支持的 SDK 版本会自动使用新的端点。

要选择退出基于账户的路由，请选择以下选项之一：
+ 配置 DynamoDB 服务客户端，将 `AccountIdEndpointMode` 设置为 `DISABLED`。
+ 设置环境变量。
+ 设置 JVM 系统属性。
+ 更新共享 AWS 配置文件设置。

以下示例演示了如何通过配置 DynamoDB 服务客户端来禁用基于账户的路由：

```
DynamoDbClient.builder()
                 .accountIdEndpointMode(AccountIdEndpointMode.DISABLED)
                 .build();
```

有关其他配置选项的更多信息，请参阅《工具参考指南》中的[基于账户 AWS SDKs 的终端节点](https://docs.aws.amazon.com/sdkref/latest/guide/feature-account-endpoints.html)。

## 本主题涵盖的内容
<a name="ddb-topics-overview"></a>

以下各节将向您展示如何使用 DynamoDB：
+ [处理 DynamoDB 中的表](examples-dynamodb-tables.md) - 创建、描述、更新和删除表
+ [处理中的项目 DynamoDB](examples-dynamodb-items.md) - 添加、检索和更新单个项目
+ [使用 Java 对象映射到 DynamoDB 项目 AWS SDK for Java 2.x](dynamodb-enhanced-client.md) - 在增强型客户端中使用对象映射和面向文档的数据

有关其他 DynamoDB 代码示例，请参阅代码示例库中的 [DynamoDB 代码示](java_dynamodb_code_examples.md)例。 AWS 