我们在生产中运行了一个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桶。因此,第一种选择是不可行的。
最后,我们决定在每个应用程序主机中设置客户端(独立)代理。我们从主机到主机递增地执行此操作,以增加缓存流量。这样,网站的变化就足够小了。
发布于 2016-08-08 22:17:36
如果您想要轻松,少工作,并证明工作良好,请执行以下操作:
是的,总有一段时间,缓存中的东西不会很热,但是Couchbase不需要很长时间就能得到填充。此方法一直用于切换。这是很容易,几乎是傻瓜的证明。我看到人们做的一件事就是在切换之前,尝试从他们现有的memcached服务器复制到Couchbase,但我不确定它们是如何更新memcached中每个值的关键。
还请注意,Moxi是一个临时步骤,可以轻松地摆脱常规memcached,这是很棒的,但是从长远来看,切换到SDK要好得多。SDK比纯memcached具有更多的特性。
不要使用memcached存储桶,因为它们没有HA、持久性或Couchbase的其他特性。
https://stackoverflow.com/questions/38831862
复制相似问题