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