amazon web services弹性负载平衡无需停机

我试图弄清楚Amazon Web Services Elastic Load Balancing如何创build不停机。

弹性负载平衡每隔一段时间(通常是几秒钟)就会对服务器path进行压缩。 如果在设定的时间内(通常是一秒或两秒)没有收到响应,它将使服务器脱机,并且不会再向该服务器发送任何stream量,直到它重新联机为止。

我感到困惑的是,虽然该服务器将被脱机,但是AWS Elastic Load Balancing将花费几秒钟的时间对其进行ping处理,并使其实际脱机。 我假设有一种方法可以消除这种需要ping的差距,只能将stream量发送到TRULY活动服务器,并消除Elastic Load Balancing将stream量发送到有问题的服务器的可能性。 我该如何实现这一点,并在我的应用程序中创build0停机时间?

这个在线信息有冲突。 有些资源表示,如果ELB在从服务器接收到响应之前经过默认的60秒超时,则重试该请求,但是这只是less数。 有人说ELB不会重试请求。 AWS文档没有说ELB超时时会发生什么 – 这是一个相当重要的省略。 基于我读过的东西,我倾向于认为如果你的后台服务器超时,客户端发送一个错误代码,可能是408超时。 你应该testing这个,下面的build议是基于这个假设。 如果ELB重试超过我的build议下面是不正确的。

我不相信你想要的是使用ELB作为标准的Web应用程序,因为缺less重试。 更大的图片,你不能保证100%的可用性,这几乎是不可能的。 您需要将您的可用性设置为一个现实的水平,然后构build您的系统来实现这一目标。 例如,您可能有两个区域处于活动状态,Route 53通过故障转移进行地理位置负载平衡。 但是,如果设置为testing并将请求发送给认为健康的实例,则不会获得100%的结果,而不会在请求失败时重试请求。

如果服务器closures或超时,ELB将不会重试请求。 你将不得不把自己的逻辑或负载平衡器,它本身可能会失败。 AWS之外的硬件可能会工作,但不是一个好主意,而您自己在AWS内部的负载平衡器是一个坏主意,因为您不太可能创build一个像ELB一样可靠的负载平衡器。

我build议您专注于使您的Web /应用程序服务器稳定,可伸缩和无状态,以便可以根据需要进行扩展和缩小。