python - 什么是类似于 PHP Apache 共享内存存储(如 apc_store/apc_fetch)的良好 Flask/Python/WSGI 模拟?

标签 python apache memcached wsgi flask

我用 PHP 进行了几年的大型游戏服务器开发。负载平衡器将传入请求委托(delegate)给集群中的一台服务器。为了提高性能,我们开始使用 apc_storeapc_fetch 直接在 Apache 共享内存中缓存集群中每个实例上的所有静态数据(本质上是游戏世界的模型对象)

出于多种原因,我们现在开始使用 Flask 微框架在 Python 中开发类似的游戏框架。乍一看,这个实例的内存存储似乎没有直接转换为 Python/Flask。我们目前正在考虑在每个实例上本地运行 Memcached(以避免从我们的主 Memcached 集群通过网络传输相当大的模型对象。)

我们可以用什么代替?

最佳答案

我认为即使在这种情况下,您也可能需要考虑拥有一个集中式键/值存储系统,而不是在每台服务器上使用一系列独立的系统。除非你的负载均衡器总是将相同的用户重定向到相同的服务器,否则你可能会遇到这样的情况,即用户的请求每次都被路由到不同的服务器,因此每个节点都必须检索游戏状态,而不是从共享缓存中访问它。

此外,每个系统上的本地键/值存储可能会导致内存紧张,这可能会减慢游戏服务器的其他功能。尽管这在很大程度上取决于缓存的数据量。

一般来说,最好的方法是运行一些基准测试,看看您使用 memcached 集群可以获得什么样的性能,以及您存储的对象类型与本地存储相比。

根据您希望从键/值存储中获得的其他功能,您可能还想研究一些替代方案,例如 mongodb (http://www.mongodb.org/)。

关于python - 什么是类似于 PHP Apache 共享内存存储(如 apc_store/apc_fetch)的良好 Flask/Python/WSGI 模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4964944/

相关文章:

python - 如何在 Dash Plotly 中将 Long_callback 与多页应用程序一起使用?

python - Firebase/Google Cloud Function 中 HTTP 请求的多次返回

python - Apache + mod_wsgi 交互

apache - 制作 : ***/lib/modules/2. 6.32-279.el6.x86_64/build : No such file or directory. 停止

python - Django - 当 memcached 关闭时发出警报

java - 关于此异常可能来自何处的任何想法?

python - 类型错误 : cannot perform reduce with flexible type

python - 传递给函数时列表会发生什么?

apache - 在 Ubuntu 14.04/Apache2 上为 Vhost 启用 SSL

memcached - Memcache(d) 与 Varnish 加速 3 层 Web 架构