Rails 是否可以实现低延迟的国际象棋应用程序?Rails 框架主要面向无状态的 afaik。
在 Rails 中实现国际象棋的一种方法是给出一个移动(“请求”),从数据库中读取当前位置,检查移动在当前位置是否有效并计算新位置,将该新位置写入数据库,并将其发送给其他玩家。
这具有无状态的优点,因为请求之间的内存中没有任何内容。但它涉及每次都从数据库中获取当前位置。大概这将对延迟产生重大影响。
假设相反,游戏的位置保留在内存中。移动会更新内存中的位置并向其他玩家发送响应。之后更新数据库。如果游戏在许多 Unicorn/Thin/Mongrel 进程上分片,那么如何将请求路由到该游戏的正确 Unicorn 进程。在我的 Nginx/Lighty/Apache 进程和我的 Unicorn/Thin/Mongrel 进程之间是否需要某种路由进程,该进程有一个将游戏映射到其正确 Unicorn 分片的表?
这种类型的问题让我印象深刻,因为许多其他人一定遇到过。在 Rails 中有没有一种惯用的方法来做到这一点?