【问题标题】:AWS Neptune connection pool settingsAWS Neptune 连接池设置
【发布时间】:2023-01-30 02:10:27
【问题描述】:

我们使用连接池从 AWS Lambda 与 AWS Neptune 通信。因此,我们遇到了各种连接问题。通常,它发生在维护窗口之后,需要重新启动 Neptune 才能修复它。

例如,下面是在 AWS Neptune 中自动推出 SSL 证书后 Python Lambda 中出现的错误:

Max retries exceeded with url: /endpoint/ (Caused by SSLError(SSLCertVerificationError(1, 
'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1131)')))

此行为似乎与 Neptune Endpoint 功能有关,并在 AWS Doc 中提到

Neptune 集群的自定义终端节点代表您选择的一组数据库实例。当您连接到终端节点时,Neptune 会选择组中的一个实例来处理连接。

当您将数据库实例添加到自定义终端节点或将其从自定义终端节点中删除时,与该数据库实例的任何现有连接都保持活动状态。

只要连接仍然有效,它就不会从池中删除,尽管它不再起作用。

我的问题:如何从客户端配置 HTTP 连接池以解决此问题?是否可以在使用之前检查 Neptune 连接?

【问题讨论】:

    标签: aws-lambda amazon-neptune aws-neptune


    【解决方案1】:

    一般的最佳做法是假设连接仍然存在/有效,并在遇到此类异常时捕获/重新连接。 Lambda 函数架构示例(主要用于 Gremlin,但其他查询语言也有类似的模式)显示在这里:https://docs.aws.amazon.com/neptune/latest/userguide/lambda-functions-examples.html

    【讨论】:

      猜你喜欢
      • 2019-03-08
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 2015-02-26
      相关资源
      最近更新 更多