【问题标题】:ELB Balancing Stateful ServersELB 平衡有状态服务器
【发布时间】:2020-02-19 00:29:10
【问题描述】:

假设我有这个 HTTP2 服务,它有一个用户列表和这个用户的头发颜色,在内存和数据库中。

现在我想将其扩展到多个节点 - 但是我不希望同一个用户位于两个不同的服务器内存中 - 每个服务器都应处理这些特定用户。这意味着我需要通知负载均衡器正在处理每个用户的位置。在除垢的情况下,我需要通知此用户无处可去,并且可以路由到任何服务器或通过给定的规则 - 使用较少内存的 IE 服务器。

是否有人知道 ALB 负载均衡器是否支持该功能?我正在考虑使用基于查询字符串参数的路由的一条路径,因此我可以在请求本身中通知 destination_node = (int)user_id % 4 之类的信息,以防我有 4 个节点 - 这在概念证明中效果很好,但这会导致几个问题:

  • 服务本身需要知道有多少实例需要平衡。
  • 我不能保证平衡,它基本上是基于运气的平衡。

解决这个问题的首选方法是什么,或者解决这个问题的常用方法是什么? AWS ELB 是否支持开箱即用?我试图避免编写自己的平衡器,这是一个跟踪哪些服务正在处理哪些用户的中间件,其职责是在这些服务器之间分配请求。

【问题讨论】:

    标签: amazon-ec2 amazon-elb


    【解决方案1】:

    在 AWS Application Load Balancer (ALB) 中可以编写路由规则

    • 主机头
    • HTTP 标头
    • HTTP 请求方法
    • 路径模式
    • 查询字符串
    • 源 IP

    但目前没有办法在动态条件下进行路由。 如果可以对您的数据进行分组,我更喜欢路径模式,例如 /users/blond/123

    【讨论】:

    • 如果我像你说的那样使用路径模式进行平衡 - 这是否意味着对于给定的路径参数之一,将始终使用相同的服务器?
    • 一个路径匹配可以路由到目标组(1-n 个服务器)或 http 端点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多