【问题标题】:Amazon AWS routing from presentation layer to application layerAmazon AWS 从表示层到应用层的路由
【发布时间】:2014-03-24 11:39:18
【问题描述】:

我有以下场景,其中一个 Amazon EC2 服务器集群在表示层上工作,这些服务器通过 Amazon Elastic 负载均衡器将请求传递给其他 EC2 服务器集群(业务层)。

新要求是:业务层的服务器将负责一些任务而不是所有任务,例如类型一的服务器将服务于类型 1、2、3 的请求。类型 2 的服务器将服务类型 4、5、6 的请求。等等。

在 Amazon AWS 中实现此逻辑的最佳方法是什么,我是否需要为每种类型配备一个弹性负载均衡器,我可以将路由逻辑放在一个负载均衡器中,还是我必须做其他事情?

谢谢

【问题讨论】:

  • 这些任务是否用于在表示层构建页面?还是他们习惯于处理用户数据?如果是后者,那么我建议使用 Amazon SQS 并以这种方式分配您的任务。在这个设置中,每个集群都会监听一个单独的 SQS 队列。
  • 感谢您的帮助,实际上来自业务层的结果将用于构建页面。但是你说的是这种分离背后的原因之一,因为其中一些任务不应该在线,我的意思是你可以把它们放在SQS中,然后再得到结果。
  • 我目前正在使用的一种方法是使用 Apache Thrift 为系统的在线部分创建分布式系统。

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


【解决方案1】:

ELB 不允许您这样检查流量。要么创建多个 ELB,要么自己用 nginx+haproxy 之类的东西来处理。

【讨论】:

    【解决方案2】:

    最好是使用不同的集群来实现不同的功能。

    每个集群都有不同的端点 URL,因此您可以从表示层访问所需的端点。

    在某些类型的工作(主要是运行时间较长的工作)中,您将不得不使用 SQS 并从表示层发布消息。然后集群可以选择他们感兴趣的工作并执行。您可以通过发布不同的 SQS 消息来分隔不同的作业。

    当您设置这些基于“任务”的集群时,很容易将它们作为 Auto Scaling 集群进行管理 - 经济高效且易于扩展(根据需要一对多)在此处阅读更多信息:http://aws.amazon.com/autoscaling/

    【讨论】:

    • Auto Scaling 与什么有什么关系?
    • 我们的想法是使用不同的 EC2 组(=clusters)对变体工作进行分组。如果将这些设置为 Autoscaling 集群,那么它具有成本效益且易于扩展(根据需要一对多)
    • 集群和自动缩放之间的距离非常大 - 我建议你应该给出一些解释你的阅读建议与什么相关。
    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多