【问题标题】:Is it possible to send a message to specific instance behind the ELB?是否可以向 ELB 后面的特定实例发送消息?
【发布时间】:2018-07-03 11:38:57
【问题描述】:

我正在使用 aws 经典负载均衡器,我想向 ELB 后面的特定实例发送消息。我发现了一些其他问题,他们试图向所有实例广播消息,但在我的情况下,我想根据 IP、名称等标识符将消息发送到选择性实例。

让我解释一下场景以便更好地理解。

假设 ELB 后面有两个实例,即 instance1 和 instance2。在从 instance1 收到请求的特定情况下,我想在单独的请求中向 instance1 发送响应。类似的情况也适用于 instance2。

有可能吗?

编辑 1: 我正在尝试这样做,因为我正在使用 SignalR 向客户端广播消息并等待来自客户端的响应。如果响应转到另一个实例,则等待的实例将不会得到响应。

【问题讨论】:

    标签: amazon-web-services amazon-elb


    【解决方案1】:

    您无法指定将请求发送到哪个服务器。但是,您可以Configure Sticky Sessions for Your Classic Load Balancer,这使负载均衡器能够将用户的会话绑定到特定实例。这样可以确保会话期间来自用户的所有请求都发送到同一个实例。

    基本上,它使用 cookie 来记住使用了哪个服务器,并将将来的请求发送到同一台服务器。这应该可以满足你的要求。

    【讨论】:

    • 感谢您的回复约翰,我将阅读有关粘性会话的信息。在这方面进行更多搜索时,我发现应用程序负载均衡器可以灵活地定义侦听器规则。如果我们不选择将完整的用户会话绑定到特定实例,这将是探索的方向吗?
    • Application Load Balancer Target Groups 用于根据 URL 将流量引导到服务器子组。例如,向一组服务器发送身份验证请求,向另一组服务器发送数据请求,都通过同一个负载均衡器。您可以创建一个大小为 1 的目标组,然后使用配置的 URL 发送请求,这将始终发送到一个服务器,但这对于应用程序来说听起来很奇怪。随时编辑您的问题,以提供您希望这样做的为什么的详细信息,我们或许能够提供更好的答案。
    • @JohnRotenstein 提到做基于主机的路由,你的 login.com 点实例 1 和 signup.com 的 ALP 将指向实例 2。因此流量将相应地基于 DNS 路由
    • 您不能(?)使用 ELB 向客户“广播”。 ELB 旨在接受 incoming 请求,将它们路由到 EC2 实例,然后提供响应。实例无法启动连接。如果您正在谈论通过 Websockets 保持长连接打开,请考虑使用 [网络负载均衡器](Listeners for Your Network Load Balancers - Elastic Load Balancing)。
    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 2020-08-11
    • 2015-12-06
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    • 2013-01-18
    相关资源
    最近更新 更多