我在多节点Web应用程序上使用Amazon ElastiCache进行会话存储和昂贵的操作缓存。一个gotchya - 我没有考虑到ElastiCache节点与本地Memcached服务器相比的网络延迟。
我的基准测试显示,在AWS VPC内(如所宣传的),ElastiCache调用的响应时间为1-2ms,相当不错,但显然比本地任何东西都慢得多。就实际计算周期而言,1-2ms是一生。这大大改变了我可以考虑的“昂贵的”#34;值得缓存的操作。
我的经验不足让我走上了这条道路,但我想其他人在进入"云计算时必须遇到类似的问题。
问题:重新考虑(并重写)符合“昂贵”标准的内容是否更好?操作,或者基础设施应该更好地支持代码(例如,我可以在每个节点上使用本地memcached服务器,只将缓存未命中传递到ElastiCache节点)。
答案 0 :(得分:0)
一些未解决的问题:
现在找到解决方案(将根据上述问题进行更新'回答):
可能的解决方案
划分你可以很好地显示陈旧价值的东西,以及在所有服务器上应该没有陈旧和共同的东西(例如钱包里的钱等)。现在设置两层缓存,一层即仅在服务器上,并保存可以在不同服务器上单独进行的所有值,并维护常用的AmazonElastic缓存以获得稳定的值。这可能是工作策略之一。