选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

对 Amazon Keyspaces 中的常见错误进行故障排除

聚焦模式

本页内容

对 Amazon Keyspaces 中的常见错误进行故障排除 - Amazon Keyspaces(Apache Cassandra 兼容)

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

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

遇到一般性错误? 以下介绍一些常见问题以及如何解决这些问题。

一般性错误

您会遇到以下顶级异常之一,这些异常可能因许多不同的原因而产生。

  • NoNodeAvailableException

  • NoHostAvailableException

  • AllNodesFailedException

这些异常是由客户端驱动程序生成的,可能发生在您建立控制连接或执行read/write/prepare/execute/batch请求时。

如果您在建立控制连接时发生错误,表明应用程序中指定的所有联系点都无法访问。如果在执行read/write/prepare/execute查询时出现错误,则表示该请求的所有重试次数都已用完。使用默认重试策略时,每次重试都是在不同的节点上尝试的。

如何将底层错误与顶级 Java 驱动程序异常隔离开来

这些一般错误可能是由连接问题引起的,也可能是执行read/write/prepare/execute操作时造成的。在分布式系统中,必须预料到会出现暂时故障,并且应通过重试请求来处理。遇到连接错误时,Java 驱动程序不会自动重试,因此建议在应用程序中建立驱动程序连接时实施重试策略。有关连接最佳实践的详细概述,请参阅优化无服务器环境的客户端驱动程序连接

默认情况下,Java 驱动程序将所有请求设置idempotence为 false,这意味着 Java 驱动程序不会自动重试失败的read/write/prepare请求。要将 idempotence 设置为 true 并告诉驱动程序重试失败的请求,您可以通过几种不同的方式执行此操作。以下是如何以编程方式为 Java 应用程序中的单个请求设置幂等性的示例。

Statement s = new SimpleStatement("SELECT * FROM my_table WHERE id = 1"); s.setIdempotent(true);

您也可以通过编程方式设置整个 Java 应用程序的默认幂等性,如以下示例所示。

// Make all statements idempotent by default: cluster.getConfiguration().getQueryOptions().setDefaultIdempotence(true); //Set the default idempotency to true in your Cassandra configuration basic.request.default-idempotence = true

另一项建议是在应用程序级别创建重试策略。在这种情况下,应用程序需要捕获 NoNodeAvailableException 并重试请求。我们建议重试 10 次,指数回退从 10 毫秒开始,最长可达 100 毫秒,所有重试的总时间为 1 秒。

另一种选项是在建立 Github 上可用的 Java 驱动程序连接时应用 Amazon Keyspaces 指数重试策略。

使用默认重试策略时,请确认您已与多个节点建立了连接。您可以使用 Amazon Keyspaces 中的以下查询执行该操作。

SELECT * FROM system.peers;

如果此查询的响应为空,则表示您正在使用 Amazon Keyspaces 的单个节点。如果您使用的是默认重试策略,则不会重试,因为默认重试始终发生在不同的节点上。要了解有关通过VPC端点建立连接的更多信息,请参阅如何在 Amazon Keyspaces 中通过 VPC 端点配置连接

有关演示如何使用 Datastax 4.x Cassandra 驱动程序与亚马逊密钥空间建立连接的 step-by-step教程,请参阅。Step-by-step 使用适用于 Apache Cassandra 的 4.x DataStax Java 驱动程序和 Sigv4 身份验证插件连接亚马逊密钥空间的教程

下一主题:

连接错误

上一主题:

故障排除
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。