【问题标题】:Replication with AWS ElastiCache (Memcached)使用 AWS ElastiCache (Memcached) 进行复制
【发布时间】:2019-09-20 12:53:35
【问题描述】:

我正在使用具有多个节点的 AWS ElastiCache 集群 (memcached)。似乎数据没有在节点之间复制。从 ElasticCache 集群端点请求数据时,有时会返回来自较早写入的数据,但有时会选择不同的节点进行读取,并且找不到数据。

是否有任何实用的方法可以使用 ElastiCache (Memcached) 在节点之间复制数据? (我宁愿避免使用我需要自己管理的复杂解决方案,因为这违背了使用 ElastiCache 等托管服务的目的)

我的任务是将旧的本地应用程序迁移到 AWS,以前的服务器配置对我不可用。

我正在考虑的另一种方法是确保相同的 EC2 实例始终访问同一个节点,但是用户会话数据也存储在 memcached 中,这并不能保证用户后续请求将由同一个 EC2 实例完成(使用 ALB)。

【问题讨论】:

    标签: memcached amazon-elasticache


    【解决方案1】:

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

    通常,这不是问题,因为几乎所有 Memcached 客户端都使用散列来为密钥选择特定端点。这意味着 Memcached 客户端会执行自己的负载平衡,您永远不应该使用负载平衡器来选择 Memcached 端点。但是,有时(例如,由于短暂的网络中断)客户端仍然可以为密钥选择不同的端点,从而导致不一致。

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

    【讨论】:

      猜你喜欢
      • 2019-09-12
      • 2014-11-03
      • 2017-04-08
      • 2015-10-11
      • 2017-04-15
      • 2020-02-09
      • 2021-03-01
      • 2013-02-26
      • 2014-03-10
      相关资源
      最近更新 更多