Tag: shared nothing

Rails是否共享 – 或者可以将请求分开访问相同的运行时变量?

PHP在无共享环境中运行,在这种情况下,这意味着每个Web请求都在一个干净的环境中运行。 除了通过单独的持久层(文件系统,数据库等)之外,您无法访问其他请求的数据。 Ruby on Rails怎么样? 我刚读了一篇博文,说明单独的请求可能会访问同一个类变量。 我想到这可能取决于Web服务器。 Mongrel的FAQ说明Mongrel每个请求使用一个线程 – 建议无共享环境。 FAQ继续说RoR不是线程安全的,这进一步表明RoR不会存在于共享环境中,除非新请求重用从先前请求创建的内存中对象。 显然这具有巨大的安全后果。 所以我有两个问题: RoR环境是否共享? 如果RoR在共享环境中运行(或者可能在某些情况下运行),那么我应该对哪些变量和其他数据存储感到偏执? 更新:我会进一步澄清。 在Java servlet容器中,您可以拥有跨多个请求持久化的对象。 这通常用于缓存多个用户可以访问的数据,数据库连接等。在PHP中,这不能在应用程序层完成,它必须在像Memcached这样的单独的持久层中完成。 所以双重问题是:哪种情况是RoR(PHP或Java),如果像Java一样, 哪些数据类型在多个请求中持续存在?