使用AWS ElastiCache(Memcached)进行复制

3
我正在使用带有多个节点的AWS ElastiCache集群(memcached),似乎节点之间的数据未被复制。当从ElasticCache集群端点请求数据时,有时会返回早期写入的数据,但有时会选择从其他节点读取并找不到数据。
是否有实际方法在ElastiCache(Memcached)节点之间复制数据?(我宁愿避免使用需要自己管理的复杂解决方案,因为这违背了使用ElastiCache等托管服务的目的)
我被要求将传统的本地应用程序迁移到AWS上,以前的服务器配置对我不可用。
我考虑的另一种方法是确保相同的EC2实例始终命中相同的节点,但用户会话数据也存储在memcached中,并且不能保证用户的后续请求将由相同的EC2实例(使用ALB)满足。
1个回答

3

Memcached不本地支持复制。有些客户端通过向多个端点发送set请求来实现复制。

一般来说,这不是问题,因为几乎所有的Memcached客户端都使用哈希选择特定的端点来存储一个键。这意味着Memcached客户端自己进行负载平衡,您不应该使用负载均衡器来选择Memcached端点。但是,有时候(例如,由于短暂的网络中断),客户端仍然可以选择一个不同的端点来存储一个键,从而导致不一致性。

如果您想要一个一致的、受管理的Memcache,您可以使用像MemCachier这样的服务(完全透明,我目前为MemCachier工作)。任何具有多个端点的MemCachier计划始终是一致的,即每个端点始终具有相同的缓存视图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接