多个主机上的Couchbase memcached存储桶没有获得所有结果

时间:2012-11-19 13:23:51

标签: c# memcached couchbase

我正在使用couchbase memcached存储桶作为我们旧的memcached缓存的替代品。 我在同一个集群上也有一个沙发根桶。

群集有两个节点,我使用的配置非常基本。

<couchbase>
    <CouchBaseBucket>
      <servers bucket="CouchBaseBucket" bucketPassword="password">
        <add uri="http://10.100.10.97:8091/pools"/>
        <add uri="http://10.100.10.98:8091/pools"/>
      </servers>
    </CouchBaseBucket>
    <MemcachedBucket>
      <servers bucket="MemcachedBucket" bucketPassword="password">
        <add uri="http://10.100.10.97:8091/pools"/>
        <add uri="http://10.100.10.98:8091/pools"/>
      </servers>
    </MemcachedBucket>    
  </couchbase>

(多桶配置是根据这里的SO帖子Couchbase multiple buckets in .NET app.config

完成的

问题是我并不总是为我刚刚插入的条目获得缓存命中(但有时候我会这样做)。整个存储桶只有2个可用GB中的4-5个项目,键值对包含20个字符键和Guid值,因此驱逐应该不是问题。

当我在只有一个主机的测试设置中尝试这个时,我从来没有遇到过这个问题,所以我怀疑这可能与NodeLocator有关,但NodeLocator应该是默认的KetamaNodeLocator,因为我没有定义一些东西其他在配置中。

我使用的客户端是Couchbase .NET客户端库,Assembly版本1.1.6.0,我的服务器是couchbase服务器1.8.1

任何想法可能出错?

1 个答案:

答案 0 :(得分:0)

解决了,与多个主机无关。 嗯......差不多。

问题在于,未来主机的时钟之一已经关闭了两个小时。 #omg

我认为这对Couchbase来说是一个问题,因为它假定/要求所有涉及的服务器(运行服务器和运行客户端的服务器)必须同步它们的时钟。

无论如何,这可能会让一些可怜的灵魂节省一些时间的调查