【发布时间】:2016-01-15 00:56:10
【问题描述】:
我正在构建基础架构以支持我们打算扩展到数十万用户的游戏平台。由于这是在娱乐/游戏行业,我们预计每个用户会话都会产生沉重的负载,因此,性能是最重要的。
我们正在尝试尽可能多地并行化架构,这意味着 API、数据库和应用程序运行在可以水平扩展的不同服务器上。其中一个应用程序是 Web 应用程序,由于涉及旧版浏览器上的同源策略的特定场景,我们遇到了最大的麻烦。
在网络浏览器中运行的这个应用程序需要快速访问只能通过集中式 API 获得的模型。虽然这对我们的专用移动客户端来说非常有用,但不幸的是,浏览器需要完全支持 CORS 才能直接与我们的 API 交互。这是有问题的,因为并非所有浏览器都支持某些 HTTP 动词(放置/删除)。我们唯一已知的解决方法是,重写 API 以创建更多抽象(我们认为这不是最佳实践,并且会增加开发时间和潜在的性能)并使用 JSONP 仅使用 POST 或创建代理(这将增加额外的两条腿到旅行并加倍延迟性能)。
归根结底,我们将这个问题归结为...是仅有的两个选项吗,还是我们没有考虑其他一些问题,如果是,这些解决方案中的哪一个更适合游戏平台。
【问题讨论】:
-
您是否使用 access-control-allow-methods 将 PUT 和 DELETE 列入白名单?
标签: javascript ajax performance api rest