我们正面临一个 memcached(Redhat 上的 v1.4.4)问题,准确描述如下:
在 memcached 中使用一致的 ketama 哈希,对于给定密钥的位置没有严格的状态。在没有最新的密钥服务器重新映射信息的情况下,客户端可能会从错误的 memcached 服务器读取或写入密钥,这将导致数据陈旧或不一致。例如,如果有任何网络中断,并且一个或多个客户端决定某个特定的 memcached 服务器不再可用,即使原始节点仍然可用,它们也会自动将一些数据重新散列到其余节点。如果节点最终恢复服务(例如在网络中断解决后),该节点上的数据将过期,并且没有更新密钥服务器重新映射信息的客户端将读取陈旧数据。
有没有办法在不使用昂贵的商业软件替代品的情况下解决这个问题?