我对我编写的微服务进行了以下测试场景作为弹性测试的一部分。
TEST : BLOCK ALL OUTBOUND TRAFFIC and ALLOW ALL INBOUND TRAFFIC.
我想不出现实世界中会发生这样的事情,除非有人故意摆弄网络/路由/ IP 表或防火墙。
我想知道是否存在与上述测试场景相当的真实情况,前提是部署微服务时防火墙和网络/路由/ IP 表设置没有问题。
有人可以启发我吗?
问候。
PS:我的微服务将作为 AWS ECS 在 VPC 中运行,并通过 ELB 连接到外界。
答案1
您需要仔细定义“流量”,因为有多种故障模式符合您的描述。
假设 TCP,至少有两组不同的条件似乎符合描述,但具有相反的效果。
如果出站数据包被丢弃,那么入站连接也会受到影响。网络链路上的单向传输或网络 ACL 配置错误都可能触发这种情况。路由不对称在互联网上很常见,因此这种故障可能有很多原因。在这种故障中,服务的工作负载需求可能会大幅下降,因为无法在任一方向建立连接,但 SYN 数据包过载并不意外。
如果出站連接失败(无法建立 TCP 会话)但入站连接成功,这是一种非常不同的情况。使用第 7 层负载均衡器时,这种情况很容易发生,因为服务接收入站请求的路径与处理出站请求的路径不同。路由表或网络 ACL 配置错误、NAT 设备故障或配置错误都可能触发这种情况,或者 VPC 端点问题、或底层资源(例如您的服务访问的数据库或 API)中的网络组件故障。在这种情况下,您的服务的工作负载会激增,因为每个请求在尝试联系其所依赖的资源时都需要更多的运行时间,但都会失败。
这两种情况都可能在现实世界中发生,而且确实会发生,原因既有你控制范围内的,也有你控制范围之外的。分布式计算的谬误是“网络可靠”。
错误的。