3

缩放有一件事我还不明白。假设一个简单的场景 ELB -> EC2 前端 -> EC2 后端

在此处输入图像描述

当有高流量时,会创建新的前端实例,但是,如何建立与后端的连接?

后端应用程序如何跟踪它从哪个 EC2 接收,以便它可以响应正确的最终用户?

此外,如果从自动创建的实例之一建立连接,然后流量再次变低并且实例被删除,会发生什么情况......与最终用户的连接丢失了?

FWIW,服务器之间的连接是通过 WebSocket 的。

4

1 回答 1

2

例如,假设您的 ec2“前端”是 Web 服务器,而您的后端是数据库服务器,那么当启动新的前端实例时,它们必须从您的“黄金”AMI 创建以前使用所有必需的软件和配置信息进行设置,或者作为机器启动的一部分,它必须安装所有自定义项(任何一种方法都有效)。无论采用哪种方法,他们都将知道如何通过 IP 地址或新启动机器上的配置信息中的 DNS 记录来查找后端服务器。

您无需担心后端跟踪客户端 - 每个与后端通信的客户端都将拥有一个 IP 地址,而 TCPIP 将为您处理握手。

至于关闭实例,您可以启用连接耗尽以确保现有对话/连接不会丢失:

启用并配置连接耗尽后,从 Elastic Load Balancer 取消注册实例的过程会增加一个步骤。在配置的超时期间,负载均衡器将允许完成对实例的现有正在进行的请求,但不会向实例发送任何新请求。在此期间,API 会将实例的状态报告为 InService,并显示一条消息,指出“实例注销当前正在进行中”。一旦达到超时,任何剩余的连接都将被强制关闭。

https://aws.amazon.com/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/

于 2016-03-11T12:02:57.370 回答