我正在运行一个带有位于不同数据中心的 Web 服务器的 AWS 负载均衡器。
我需要开始在 Elasticache 上使用 PHP 会话来集中会话管理。
我可以创建一个 2 节点 Elasticache 设置,每个数据中心都有一个节点,但我担心如果需要在与请求 Web 服务器相对的数据中心的缓存服务器上访问缓存数据,则会影响速度。
是这样的吗?还是对速度没有影响或影响很小?
答案1
让两个 ElasticCache 节点跨区域复制效果并不好。相隔 2,500 英里造成的网络延迟将抵消大部分/所有性能提升。
不过,您不需要跨区域共享会话数据。在 Route53 中设置基于延迟的 DNS 路由,它将自动将每个用户路由到最近的数据中心。他们的会话将存在于他们的区域内。
答案2
当您说“数据中心”时,您是指区域(us-west-1,us-east-1)还是可用区域(us-west-1a,us-west-1b 等)。
如果您仅使用同一区域中的两个可用区,则延迟可以忽略不计,您可以将可用区视为同一个数据中心(即使它们是隔离的,但它们通过高速光纤连接)。
如果您谈论的是两个区域(例如 us-west-1 和 us-east-1),那么延迟将会高得多(此外 ELB 不会在区域之间平衡,只会在可用区域之间平衡)。