因此,假设我有以下(显然简化的)架构:我有10台服务器运行相同的REST API端点。我有一个中间API来记录请求,然后将其转发到其中一个服务器(负载均衡器)。
现在让我们假设这是一个非常大的流媒体响应。因此,我显然不希望数据必须通过负载均衡器返回 - 因为这不会导致负载平衡服务器的目的陷入困境吗?实现负载平衡系统的正确方法是什么,该系统将请求委托给节点但不通过负载平衡服务器强制响应?
此外,JVM上是否有实现此功能的REST框架?
答案 0 :(得分:1)
您正在寻找的是DSR(直接服务器返回)。你可以尝试谷歌一点。 AFAIK大多数硬件负载平衡器都有此选项 问题是您使用的负载均衡器是什么?它是硬件,AWS上的ELB,HAProxy? 例如: http://blog.haproxy.com/2011/07/29/layer-4-load-balancing-direct-server-return-mode/
如果您还没有真正进入负载均衡器,您可以尝试分两个阶段进行设置:首先 - 客户端点击API并获取服务器的IP,然后客户端与服务器进行通信。在让其他服务器空闲时(随着时间的推移初始设置和重新平衡工作负载),困难的部分将不会使某些服务器超载。