2011-04-21 80 views
1

我们正在构建一个可以从Memcached等分布式缓存机制中受益匪浅的系统。但是我无法将我的头脑置于Memcached守护进程的配置和客户在亚马逊数据中心上互相找到对方。我们是否需要手动设置每个memcache实例的IP地址(它们不会专用,它们将运行在Web服务器或Worker Boxes上),还是有一种让它们彼此交谈的自动方式?我正在寻找微软Windows服务器应用结构缓存,但它似乎需要一个文件共享或域才能正常工作,而我目前没有......给出内部IP地址是亚马逊上的瞬态,我想知道如何你解决这个问题...亚马逊EC2 + Windows Server 2008 + Memcached =如何?

+0

因此,环顾其他一些东西,似乎DNS可能是一种解决方法。任何人用DNS试过Memcached?我们有一个外部DNS提供商(Zerigo),他们提供更新我们域名的API。在接下来的几天里对此进行调查。我开始错误的树,还是这个工作? – TiernanO 2011-04-26 16:17:25

回答

1

我以前没有设置memcached服务器的集群,但是Membase是一个解决方案,可以消除所有使用memcached时遇到的痛苦。 Membase基本上是Memcached,下面有一个持久层,并附带很棒的集群管理软件。将服务器聚类在一起非常简单,因为您只需告诉群集新节点的IP地址是什么。如果您已经有一个为Memcached编写的应用程序,它也将与Membase一起工作,因为Membase使用Memcached协议。这可能值得一看。

+0

我喜欢这个MemBase的东西的外观。感谢您的链接。似乎比MemcacheD更容易管理。 – TiernanO 2011-05-13 08:20:30

1

我相信你可以在EC2中为每个包含你的memcached服务器的盒子创建一个弹性ip。这些弹性ips可以动态映射到任何EC2实例。然后你的memcached客户端就像使用静态ip地址一样使用弹性ips。

http://alestic.com/2009/06/ec2-elastic-ip-internal

+0

我设法通过使用Zerigo的DNS服务来避免使用外部IP。我有一个在所有机器上运行并更新DNS记录的Windows服务。所有机器都知道在寻找SQL Server,Solr等时要查找哪个DNS记录。 – TiernanO 2011-05-13 08:17:50

0

正如你似乎已经发现,Route53通常用于这些发现的目的。但是,对于您的特定用例,我只会使用Amazon ElasticCache。亚马逊拥有兼容memcached和redis的ElasticCache版本,他们为您管理基础架构,包括为您提供DNS入口点。同样为了管理诸如asp.net会话状态之类的东西,您可能会考虑DynamoDB会话状态提供程序中的this文章。

一般经验法则:如果你正在开发一个新的应用程序,然后尝试利用云提供的内容与构建它,它会让你的生活方式更简单。