- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个通过 API Gateway 用作 API 的 Java AWS Lambda 函数。在过去的几个月里,它一直在 24/7 运行,并且之前没有出现过这个特定的错误。
今天,我做了一个更新以添加 Elasticache,这要求我将 Lambda 与 Elasticache 放在同一个 VPC 中。在此之前,Lambda 没有分配给任何 VPC,只是正常运行。
经过大量的配置调整,我似乎终于让它工作了——Lambda JAR 现在能够连接到 Elasticache,同时仍然可以连接到它需要的其他东西。
但是,在部署几分钟后,我开始从 Algorithmia 调用中收到此错误:
java.util.concurrent.ExecutionException: java.io.IOException: Connection reset by peer
at org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)
at org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:102)
at com.algorithmia.algo.FutureAlgoResponse.get(FutureAlgoResponse.java:41)
at <place that we invoke it>
发生错误的调用代码非常简单:
FutureAlgoResponse futureAlgoResponse = algo.pipeAsync(<stuff>);
AlgoResponse result = futureAlgoResponse.get(3L, TimeUnit.SECONDS);
更重要的是,它已经投入生产将近一年,从未出现过这个错误。
最佳答案
亚马逊支持提供诊断和解决方案!
tl; dr 是的,超时是问题所在。建议的解决方法是实现 TCP 保持 Activity 以使 350 秒的空闲超时未达到(或者只是有更多的流量,这对我们来说真的不起作用)。
我们最终所做的只是摆脱了 Elasticache。这是我们需要将 Lambda 放入 VPC 的唯一原因,在考虑之后,我们决定需要一段时间才能使我们的流量达到 Elasticache 的好处对我们真正有形的水平(与简单的 EC2 托管相比) Redis 实例)。所以现在我们的缓存只是一个在 EC2 上运行的常规 Redis 实例。
这是完整的回应:
“<首先讨论我的设置的每个步骤以及这些步骤似乎是正确的>...但是,在过去的两天里,我确实看到了一些 NAT 网关空闲超时,您怀疑这可能是问题所在。请参阅到下面的 NAT 网关指标。
话虽如此,IdleTimeoutCount 指标计算从 Activity 状态转换到空闲状态的连接数。如果 Activity 连接没有正常关闭并且在最后 350 秒内没有 Activity ,则 Activity 连接将转换为空闲。大于零的值表示存在已移动到空闲状态的连接。如果 IdleTimeoutCount 的值增加,则可能表明 NAT 网关后面的客户端正在重新使用过时的连接。
如故障排除文档中所述,为防止连接断开,您可以通过连接启动更多流量。或者,如果可能,您也可以在实例上启用 TCP keepalive,其值小于 350 秒。以固定的时间间隔发送 keepalive 探测将确保有一些流量通过 NAT 网关和远程端服务器之间的连接。 keepalive 数据包将重置 350 秒空闲超时计数器,从而使连接在应用程序需要的时间内保持 Activity 状态。
回答你的问题:“这是怎么回事?”
回答:在从 VPC 的角度验证一切都适合 Lambda 函数(SG、NACL、路由表)之后,这里肯定有 NAT 网关空闲超时的可能性。上面提供的 IdleTimeoutCount 指标也证实了这一点,表明连接由于不活动而超时。”
关于java - 将 AWS Lambda 函数放入 VPC,然后 "IOException: Connection reset by peer"开始发生,但只是偶尔发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63553768/
来历及功能 peer.exe进程程序文件是由北京光芒时代国际传媒网络技术有限公司为其在飞速网发布的PC客户端:RaySource程序的一个组成部分。被描述为“Grid Service”,其功能主要
希望你们一切都好 我是 webRTC 的初学者,如果我的问题感觉像菜鸟,我很抱歉,但我想知道是否有任何正确的方法来关闭对等点之间的连接,尤其是使用 simple-peer.js,期待您的精彩回复 这是
我在使用 Windows 8 商店应用程序时遇到了一些问题。我的问题很简单: 我在一台电脑上有一个 Windows 8 商店应用程序,在另一台电脑上有相同的应用程序。个人电脑不在同一个网络中,但有互联
我正在从事一个尝试设置 PayPal 点对点支付的项目。然而,自适应支付 API 似乎是当前 PayPal API 的一个非常旧的版本,最近没有更新。 我是否遗漏了什么,或者 API 的这一部分是否仍
我的应用程序使用 GKSession 和 GKSessionModePeer。它必须处理任意连接和断开连接的点,因为这是一个长时间运行的应用程序,用户应该能够进入后台并稍后返回。这在大多数情况下都很好
我在 Google Meet 上开会,看到你可以打开实时字幕。他们实际上有一个演示 here关于如何进行实时语音到文本,所以这一点不会让我感到困惑。 我也一直想尝试使用 WebRTC(我相信 Goog
我正在尝试在聊天模块中共享图像/视频。我已经提到了Sample代码,但找不到任何帮助。 我已经提到过http://quickblox.com/modules/chat/它说通过插入我们全功能的聊天模块
我想让 WiFi peer-2-peer 中的一组连接过程对用户来说是无缝的。有办法吗? 蓝牙是怎么做到的? 最佳答案 基本上有两种方法可以做到这一点,我在 WIFI DIRECT, CONNECTI
这是我原来问题的后续:Qt Server+Client App: encryption fails (updated with code)还将此发布到 Qt 论坛:http://qt-project.
我有两个位于同一子网上的 debian 服务器。它们通过开关连接。我知道 UDP 不可靠。 Question 1: I assume the link layer is ethernet. And M
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
我正在创建一个应用程序 (C#),它将通过网络发送一些消息。传出消息将由私钥签名,传入消息将使用私钥解密。 如果有人窃取私钥,我希望能够撤销它(向所有其他客户端发送撤销消息)。由于我是被盗私钥的所有者
我仍在学习 SIP 及其所有协议(protocol),特别是尝试将 PJSIP 集成到 iPhone 应用程序中以进行 p2p 调用。我对使用 PJSUA 的对等 2 对等连接有疑问。我能够通过使用
我想用 Webrtc 创建应用程序,它可以在网站、移动 ios 应用程序和 android 应用程序上运行。 我找到了这个链接:- http://xsockets.net/api/net-c/cust
我使用 Spark Streaming 从 Twitter 接收推文。我收到很多警告说: replicated to only 0 peer(s) instead of 1 peers 这个警告有什么
我有一个需要大量数据的模拟程序。我将数据加载到 GPU 中进行计算,数据中存在很多依赖性。由于 1 个 GPU 不足以处理数据,所以我将其升级为 2 个 GPU。但限制是,如果我需要其他 GPU 上的
我在调试我的代码时遇到问题,因为我无法理解引发的套接字错误。这是回溯。 Traceback (most recent call last): File "clickpression.py", lin
我试图将Fabric配置为可以在Kubernetes集群中使用,并且在一切正常的同时,我很难将链码(使用composer-cli)部署到网络上。看来,chaincode容器看不到创建它们的对等方。 2
在Java中,您可以使用Socket和ServerSocket来获取两个进程之间通信的双向 channel 。但其中只有一个必须拥有 ServerSocket 并被视为“服务器”,另一个则被视为“客户
我用不同的名称和不同的字段名称创建了自己的用户表,我想让 kamailio 将它用作对等用户的“acc”表,我该怎么做? 最佳答案 kamailio 中的 acc 表用于会计记录(即账单数据)。 我知
我是一名优秀的程序员,十分优秀!