Amazon route53 带ha代理的Amazon route 53

Amazon route53 带ha代理的Amazon route 53,amazon-route53,Amazon Route53,我使用amazon route 53将DNS请求路由到负载平衡器。对于负载平衡,我使用ha代理负载平衡器路由53将请求路由到ha代理 在路线53中,我给了三个负载平衡器33.33%的重量。假设当客户端请求路由53时,将请求路由到第一个ha代理服务器并建立tcp连接 所以问题是,当客户机发出第二个请求时,它会去哪里?第二个请求是否可能转到已建立tcp连接的第一个服务器 图中给出了三台服务器,还有route-53客户端使用route-53 DNS向ha代理发出请求。下一个请求的去向没有明确定义。如

我使用amazon route 53将DNS请求路由到负载平衡器。对于负载平衡,我使用ha代理负载平衡器路由53将请求路由到ha代理

在路线53中,我给了三个负载平衡器33.33%的重量。假设当客户端请求路由53时,将请求路由到第一个ha代理服务器并建立tcp连接

所以问题是,当客户机发出第二个请求时,它会去哪里?第二个请求是否可能转到已建立tcp连接的第一个服务器


图中给出了三台服务器,还有route-53客户端使用route-53 DNS向ha代理发出请求。

下一个请求的去向没有明确定义。如果您在DNS响应上设置了一个短TTL,这将确保比您预期的要少,因为客户端可能会忽略或无法访问TTL信息

然而,您仍然需要短TTL,这样客户机就不会被停止服务的代理的记录卡住

将DNS的权重定为33.3%可能不是最佳方案。您可以在每个DNS响应中返回所有正常代理的IP地址——不需要平衡命中每个代理的请求数

让我验证我对设置的理解。假设这是正确的,这里的其余答案应该适用

情景:

您有多个HAProxy服务器、tcp模式、终止TLS以及使用leastconn平衡对后端服务器的请求,以便连接数最少的后端服务器将接收下一个传入连接

分析:

您希望在后端实现平衡,因此无需在前端对DNS响应进行加权即可使其正常工作。使用DNS真正需要做的就是检查代理的运行状况,如果代理的IP地址不正常,就不要公布它的IP地址。否则,返回每个DNS响应的所有代理地址

理由:

客户端连接到哪个代理并不重要。返回所有地址将以随机顺序返回,客户端将任意使用一个地址

每个代理都保留自己到每个后端的连接数,并且从其角度来看,总是将连接发送到连接最少的后端。它不需要知道其他代理所持有的连接数,因为每个代理都独立地确保向每个后端服务器发送相同数量的连接。因此,在峰值需求时,每个代理发送到每个后端的连接数在每个代理中都是相同的+/-1,并且在代理之间是相同的,这仅取决于DNS的随机性。。。前端的不平衡会抵消自身的影响,因为如果一个IP地址接收到的流量比其他IP地址多,这只意味着从该代理到所有后端的连接数高于其他IP地址的连接数,但无论该数目是多少,在峰值负荷下,它仍然是+/-1——峰值负荷下的分布应该是您唯一关心的问题


由于断开连接的客户端比连接的客户端多,您将离开一个高峰需求期(根据定义),连接的数量将趋于不平衡,但这也不重要,因为代理会在新连接到达时将其重新调平——从代理的角度来看,这些连接将自动提供给连接最少的服务器,我们已经假设,此时您的需求量并没有达到峰值,因此精确的平衡变得不那么重要。在非高峰期间交付给任何一台后端服务器的并发连接数将永远不会超过使用此配置在高峰期间交付给服务器的连接数。

请描述您想要的行为,并解释为什么需要这种行为。HAProxies在哪里?它们在EC2中吗?如果是,它们是否位于同一AWS区域?你在平衡哪些服务?HTTP/HTTPS?网袋?还有什么?@Michael sqlbot作为Haproxy节点托管在AWS EC2实例上,AWS Route 53基于AWS Route 53上每个Haproxy节点的权重将TLS请求路由到这些Haproxy节点(托管在EC2实例上),以平衡Haproxy节点的负载。这主要是针对聊天应用程序,其中Haproxy节点基于最少连接策略(AWS ELB中不可用)将TLS请求传输到后端聊天服务器。在应用程序中,我们不知道会有多少用户。所以需要根据内存使用情况将请求路由到Haproxy节点,并动态更改路由53中每个服务器的权重。