【发布时间】:2017-10-26 00:17:34
【问题描述】:
所以我编写了这个不错的 SAAS 解决方案并获得了一些真正的客户。现在客户端请求添加一些需要 websockets 的功能。
为了保持整洁,我想使用另一台服务器来管理 websocket。
我当前的堆栈是一个 AWS 应用程序负载均衡器,在它后面有两台服务器 - 一台是当前的应用程序服务器。这是一个运行应用程序的带有 PHP 的 Apache Web 服务器。
客户端由 AngularJS 驱动。
第二台服务器(尚不存在)将转到 Nginx,会话将存储在第三台 Memcache 服务器上。
Websocket 和应用程序服务器都在同一个域中,使用不同的端口将请求发送到正确的服务器(AWS ELB 允许通过端口将请求发送到不同的服务器组)。应用程序和 websocket 都将由 PHP 和 Ratchet 驱动。
我的问题有两个:
- 适用于更有经验的开发人员 - 这样的架构听起来合理吗(我的目标还不是 100K 并发 - 我需要一个可行且经济实惠的解决方案,目标是在这个阶段最大 5000 个并发)。
- 将请求从应用程序服务器(谁具有生成请求的逻辑)发送到 websocket 服务器的最佳方式是什么?
请注意,我是 websockets 的新手,所以也许有更好的方法可以做到这一点 - 如有任何想法,我将不胜感激。
【问题讨论】:
-
“Websocket 和应用程序服务器都在同一个域中,使用不同的端口将请求发送到正确的服务器。” 使用 ALB 而不是 ELB可以路由到基于 path... 的适当后端,并且您的 cookie 将正常工作。单独的端口会带来无数的复杂性和故障排除麻烦。
标签: php amazon-web-services websocket