【发布时间】:2014-04-02 03:15:27
【问题描述】:
我们使用基于 memcached 的烧杯会话进行分布式 Plone/Zope 设置。相同的设置在我们的 pre-prod 环境中运行良好,但是当我们转移到 prod 时,我们似乎无法让它连接到 11211 上的 memcached。
我在启动 Zope 时在机器上运行了 tcpdump,它甚至没有尝试连接。
我已经从 Zope 服务器远程登录到 memcached 服务器(与 ZEO 服务器相同)以测试连接,并且工作正常。
我尝试了两个不同的 prod Zope 服务器,结果是一样的。
我们的旧设置 (4.2.5) 在另一个 prod 服务器上运行,当我们启动它时,我们得到了预期的行为,它连接到 memcached 就好了。不幸的是,我们还有一个 4.3.2 设置(与 prod 相同)在 pre-prod 中运行,它也可以正常工作。我无法确定设置中的任何实质性差异。
所有系统都在独立运行(不受系统/apt 控制)Python 2.7s。
zope.conf 的相关部分
# Beaker Configuration
zope-conf-additional =
<product-config beaker>
cache.type ext:memcached
cache.url ${ips:memcached}
cache.data_dir ${buildout:directory}/var/cache/data
cache.lock_dir ${buildout:directory}/var/cache/lock
cache.regions short, long
cache.short.expire 60
cache.long.expire 3600
session.type ext:memcached
session.url ${ips:memcached}
session.data_dir ${buildout:directory}/var/sessions/data
session.lock_dir ${buildout:directory}/var/sessions/lock
session.key beaker.session
session.secret magicalsecretcornedbeefhash
</product-config>
zcml = 集体烧杯
versions.cfg 中的相关版本:
# Beaker
Beaker = 1.6.4
Products.BeakerSessionDataManager = 1.1
collective.beaker = 1.0b3
python-memcached = 1.47
我已经测试过 ${ips:memcached} 在启动时会产生正确的值。 Zope 日志中没有记录任何错误,但没有创建烧杯会话,也没有尝试连接到 memcached。 Memcached 运行愉快,但不产生任何日志(似乎从来没有)。
任何关于可能导致此问题的想法或建议都会有所帮助。更多背景:
Ubuntu 12.04.4 LTS
Linux 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
bin/构建:
#!/opt/zope/pythons/python-2.7/bin/python
import sys
sys.path[0:0] = [
'/opt/zope/buildouts/FOO/eggs/distribute-0.6.28-py2.7.egg',
'/opt/zope/buildouts/FOO/eggs/zc.buildout-1.7.1-py2.7.egg',
]
【问题讨论】:
-
更新:将工作 ZODB 从我们的预生产环境中“解决”问题。仍然没有根本原因。
标签: session memcached plone zope beaker