我可以找出Elastic Load Balancer当前使用的实例吗?

时间:2013-04-12 09:04:10

标签: amazon-web-services amazon-ec2 load-balancing amazon-elb

我创建了两个Amazon EC2实例。之后我创建了一个Elastic Load Balancer并在其中注册了两个实例 现在我想知道的是,当我们使用负载均衡器的DNS名称时,负载均衡器会使用哪个实例?

3 个答案:

答案 0 :(得分:4)

Load balancing的想法是在多台计算机或计算机集群,网络链接,中央处理器,磁盘驱动器或其他资源[...] 之间分配工作负载。< / p>

虽然可以想到许多算法,但总体目标是实现最佳资源利用率,最大化吞吐量,最小化响应时间并避免过载,这通常意味着在负载平衡之间透明地分配负载资源。因此,您通常不会知道(并且不应该知道)哪个负载平衡资源可以满足特定请求。

因此,Elastic Load Balancing (ELB) 会自动在多个Amazon EC2实例中分发传入的应用流量

具体如何完成是一个相当复杂的主题,主要是由于ELB路由文档不存在,所以需要汇总一些部分来得出结论 - 请参阅我对相关问题的回答{{3详细分析包括我所知道的所有参考文献。

对于手头的问题,我认为可归结为AWS团队从2009年到Can Elastic Load Balancers correctly distribute traffic to different size instances的回应有点模糊:

  

ELB松散地跟踪多少请求(或连接中的请求)   TCP的情况在每个实例都很突出。它没有监控   每个实例的资源使用(例如CPU或内存)。 ELB   目前将在其认为的那些实例中进行循环   有最少的要求。 [强调我的]

答案 1 :(得分:1)

stf, 你无法知道,对于哪些服务器负载通过EBS分发,EBS内部负责处理请求的分发。

答案 2 :(得分:1)

当然,你可以找出你的请求去哪个服务器!

在每台服务器上,您将需要类似于health_check.html文件的东西(可以命名为任何东西,有人建议使用index.htm,但这是一个坏主意,完全是另一个讨论)所以负载均衡器可以调用它确定获得响应所需的时间。

在服务器#1上,将以下内容放在health_check.html文件中:<HTML><BODY>1</BODY></HTML>

在服务器#2上将其放在health_check.html文件中:<HTML><BODY>2</BODY></HTML>

现在,当您导航到www.YourDomain.com/health_check.html时,您将确切知道您所在的服务器。

清除您的Cookie并重新导航到相同的网址,以查看您接下来要使用的服务器。祝你好运云开发者!