我想部署一个使用 WebSocket 协议的交互式渲染服务。该服务是容器化的,最多可以为 N(假设 1 <= N <= 10)个客户端提供服务。N 较小的原因在于每个新连接都会创建一个新进程(在容器内),该进程对资源的要求相当高。我读过一些关于应用程序负载均衡器、服务负载均衡器、AWS Fargate 等的教程。这些负载平衡策略主要关注 CPU 负载或内存使用情况。但我找不到任何关于“基于连接”路由的文档。
是否有 AWS 技术/子系统允许我在“当前”容器(任务?)几乎“没有座位”时启动新容器(任务?)?路由不得将任何其他连接路由到“已满”容器,但不得丢弃该已满容器的现有连接。一旦容器(任务?)不再有连接,就应该停止它(如果不是最后一个),以避免消耗太多不需要的资源。
答案1
您是这项服务的作者/开发者吗?如果是,您最好重新设计它,因为您描述的不是一个合适、可扩展的架构。
最接近您所述要求的方法是使用AWS Lambda- Lambda 是按请求创建的,即,如果您有 1 个客户端,则将运行 1 个 lambda,如果您有 100 个客户端,则将运行 100 个 lambda。自动。通常,您会将 Lambda 与AWS API 网关作为他们的前端。
做同样的事情白蛋白,弹性云服务器,Fargate等需要你开发一些复杂的编排。我不会这么做。
使用 Lambda 或重新设计它以进行批处理或类似操作。
希望有帮助:)