【发布时间】:2016-08-08 14:29:03
【问题描述】:
我们有一个在生产环境中运行的 memcached 集群。现在我们将 memcached 替换为 Couchbase 集群作为持久缓存层。问题是如何实现这种转换以及如何预热 Couchbase 存储桶。显然,我们不能简单地切换到冷 Couchbase,因为从旧缓存开始会导致整个站点崩溃。
我正在考虑的一个选项是首先将 Couchbase 作为 memcached 节点进行预热。这意味着 Couchbase 正在使用(非持久性)memcached 存储桶,并像任何其他 memcached 节点一样获取缓存设置/获取流量。它的好处是代码更改最少(需要配置 moxi 代理以获取 memcached 流量,并将该节点注册为 memcached 节点)。稍后我们会将所有 memcached 存储桶转换为 Couchbase。但不确定Couchbase是否支持这两种桶之间的转换。
第二个选项是在开始时设置持久的 Couchbase 存储桶(相对于非持久的 memcached 存储桶)。我们更改生产缓存客户端以将所有流量复制到 memcached 和 coucbase 集群。我们监控 Couchbase 存储桶,一旦缓存项达到一定大小,我们就完成了切换。一个小缺点是更改缓存客户端的额外复杂性。
想法?
2016 年 8 月 9 日编辑
我后来发现,Couchbase 不支持将 memcached 存储桶转换为 couchbase 存储桶。所以第一种方案是不可行的。
最后我们决定在每个应用程序主机中设置Client-side (standalone) proxy。我们从一个主机到另一个主机逐步增加缓存流量。这样网站的变化就足够小了。
【问题讨论】:
标签: caching memcached couchbase