有一点缩放我还不明白。假设一个简单的场景ELB - > EC2前端 - > EC2后端
当流量很高时,会创建新的前端实例,但是,如何建立与后端的连接?
后端应用程序如何跟踪它从哪个EC2接收,以便它可以响应正确的最终用户?
此外,如果从其中一个自动创建的实例建立连接,然后流量再次降低并且实例被删除,会发生什么?与最终用户的连接丢失了?
FWIW,服务器之间的连接是通过WebSocket。
答案 0 :(得分:2)
假设,例如,你的ec2'前端'是Web服务器,后端是数据库服务器,当新的前端实例被启动时,它们必须是从一个' gold'您之前使用所有必需的软件和配置信息设置的AMI,或者作为启动它的计算机的一部分,必须安装所有自定义(两种方法都有效)。无论采用哪种方法,他们都会知道如何通过ip地址或新起动机器上的配置信息中的DNS记录来查找后端服务器。
您不必担心后端跟踪客户端 - 每个与后端通信的客户端都会有IP地址,而TCPIP会为您处理握手。
就关闭实例而言,您可以启用连接耗尽以确保现有会话/连接不会丢失:
启用并配置连接排放时,进程 从Elastic Load Balancer中取消注册实例会获得一个 额外的一步。在配置的超时持续时间内,加载 balancer将允许对实例进行现有的正在进行的请求 完成,但它不会向实例发送任何新请求。 在此期间,API会将实例的状态报告为 InService,以及一条消息,指出“实例注销 目前正在进行中。“一旦达到超时,任何剩余的 连接将被强行关闭。
https://aws.amazon.com/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/