运行Auto Scaling和分布式Memcache的多个AWS EC2

我计划在Amazon EC2上的一系列Linux Web服务器上使用分布式Memcache。 这些EC2目前运行自动缩放,因此会随着负载而增加和减less。

我已经使用这个post来指导初始设置。

最佳做法与memcache / php – 多个memcache节点

还有一个链接是在回复中提到的。

http://techgurulive.com/2009/07/22/a-brief-to-memcached-hash-types/

我有点不确定Web服务器本地AWS IP如何在Memcache客户端代码中的节点列表中更新,以及服务器增加和减less的时间。

我目前在客户端上使用PHP PECL – Memcache。

有没有人知道用AWS环境来pipe理这个最好的实现?

在此先感谢您的任何build议。

戴夫

这听起来像你正在devise一个相当大的系统来处理相当多的负载。 如果是这样的话,您可能希望为Memcache和Web节点分别设置不同的实例,因为它们的性能特点是完全不同的。 通过将两者分开,可以使用更适合每种types的实例types 。

Memcache在正常情况下几乎不使用CPU,因此使用高内存实例是有道理的。 同样,Web服务器通常是处理器密集型的。 为他们使用高CPU实例。

请记住,memcached本身非常简单。 它坐下并等待一个命令,说“给我这个键”或“把这个键设置为这个值”(还有其他一些,但这是基本的)。 任何hashing / etc都是在客户端memcached库中完成的。

考虑到这一点,memcached的自动扩展是相当雄心勃勃的,尽pipe它当然可以完成。 如果您不断地启动和停用服务器,您将不得不接受一些caching的数据会周期性地丢失,这可能会给您的数据库带来更多的负担,或者确保存储在memcached实例中的所有数据首先被复制到另一个实例。

有点晚了,但你不想真的想让memcache节点自动调节。 哈希会漂移,所以每当发生扩展或缩小事件时,您都将失去大部分caching。