【问题标题】:What does mid-tier load balancing mean?中间层负载均衡是什么意思?
【发布时间】:2020-01-09 23:49:59
【问题描述】:

当我遇到这个术语时,我正在阅读关于 Eureka 的文章 https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance#how-different-is-eureka-from-aws-elb。也很困惑该段的含义(EC2 经典和 AWS 安全组)。它说

AWS Elastic Load Balancer 是面向最终用户 Web 流量的边缘服务的负载平衡解决方案。 Eureka 满足了对中间层负载平衡的需求。虽然理论上您可以将中间层服务置于 AWS ELB 之后,但在 EC2 经典版中,您会将它们暴露给外部世界,从而失去 AWS 安全组的所有用处。

我对微服务架构完全陌生,并且从我能找到的来源阅读文章。任何帮助都会有所帮助!

【问题讨论】:

    标签: amazon-web-services microservices netflix-eureka


    【解决方案1】:

    中间层负载平衡器是一种不暴露在 Internet 上的负载平衡器,而是用于在堆栈中的组件之间分配内部生成的流量。

    一个例子是“下单”(微)服务,通过向“目录商品详细信息”(微)服务发送请求来验证价格——您需要一个中间层负载均衡器在多个节点前面提供“目录项详细信息”服务,以便将请求路由到该服务的健康端点,而“下订单”无需自行负责以某种方式找到健康的“目录项详细信息”端点。

    Eureka 于 2012 年首次致力于 Github。当时,EC2 的大部分内容仍在“EC2 Classic”中运行——简单来说,这是 EC2 在 VPC 之前的旧工作方式。与今天相比,这是一个更加原始的环境。

    使用 EC2-Classic,您的实例可以在您与其他客户共享的单一平面网络中运行。借助 Amazon VPC,您的实例在逻辑上与您的 AWS 账户隔离的虚拟私有云 (VPC) 中运行。

    EC2-Classic 平台是在 Amazon EC2 的原始版本中引入的。如果您在 2013 年 12 月 4 日之后创建了 AWS 账户,则它不支持 EC2-Classic,因此您必须在 VPC 中启动您的 Amazon EC2 实例。

    https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-classic-platform.html

    EC2 Classic 支持安全组来保护对 EC2 实例的访问,但 EC2 Classic 中的弹性负载均衡器 (ELB) 不支持。

    VPC 正式发布in August, 2011

    弹性负载均衡器——最初是唯一的类型,这种类型后来被重新命名为“ELB Classic”,不推荐用于新环境——为 VPC in November, 2011 发布,但仅限于面向 Internet 的品种。在此之前,如上所述,ELB 只在 EC2 Classic 中工作,只面向 Internet,并且接受来自各处的 HTTP 和 HTTPS 流量。您无法通过安全组控制访问。

    ELB Classic 在 2012 年 6 月发布了Internal Elastic Load Balancers,学会了一个新技巧——只能从 VPC 内的服务访问。这些可以安全地用于中间层,但它们非常有限,因为它们无法根据主机名或路径做出路由决策。 ELB Classic 是一个非常准系统的负载均衡器,灵活性很小。您基本上需要为每个服务使用不同的平衡器。一种常见的配置是在 ELB Classic 后面使用 HAProxy 来填补一些功能空白。

    AWS 直到 2016 年 8 月才提供可靠的托管中间层负载均衡器产品,当时新的 Application Load Balancer was announced 能够根据请求中的模式匹配将流量发送到不同的后端目标组发送到平衡器的路径...并支持在面向 Internet 或仅限内部的方案中进行部署。

    2017 年 4 月,Application Load Balancer 得到了增强,还可以像以前一样选择后端目标组 based on pattern-matching the HTTP Host header 和/或路径。

    此时,VPC 和 ALB 满足了许多(但在某些情况下,并非全部)似乎推动了 Eureka 发展的需求。

    【讨论】:

      【解决方案2】:

      我认为这个中间层可以作为 AWS ELB 的屏障或保护。让我们使用一些人试图进行 SQL 注入攻击或向您的 AWS ELB 发送垃圾邮件的示例。此外,AWS 中的 SG 允许您在创建 ALB 或 AWS 中的任何其他资源时指定哪些协议。例如,您可以设置一个只接受来自中间层服务器的流量的 SG,作为额外的安全级别。

      希望这有助于更好地理解。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-27
        • 2021-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-29
        相关资源
        最近更新 更多