0

我在我的每个 EC2 Web 服务器实例上使用 Memcached。我不确定如何在服务器级别为 memcache 节点配置各种主机名。

考虑以下示例:

<?php 
$mc = new Memcached() 
$mc->addServer('node1', 11211); 
$mc->addServer('node2', 11211); 
$mc->addServer('node3', 11211);

node1, node2,是如何node3配置的?

我已经阅读了一些设置来配置实例并使用这些条目进行hostname更新。/etc/host但是,我对配置这些东西还不够熟悉。

我正在寻找一种可扩展的解决方案——处理添加和删除实例——并且是自动的。

4

1 回答 1

0

这样做的困难在于在您的应用程序中保持更新的主机列表。当可以添加和删除主机时,使此列表保持最新可能是一个挑战。您也许可以使用某种代理,这有助于为您的应用程序提供一个恒定的端点。

如果你不能使用代理,我有几个想法。

  1. 如果主机列表是静态的,则为每个 memcached 主机分配一个弹性 ip。在 ec2 区域内,这将解析为其关联的主机的本地 IP 地址。有了这个想法,您就有了一个应用程序可以使用的主机列表。

  2. 如果您要定期添加/远程主机,您需要能够动态更新您的应用程序将使用的主机列表。您可以在 EC2 api 中查询具有特定标签的实例,然后获取所有这些实例的 IP 地址。将列表缓存在内存或磁盘上,然后将其与您的应用程序一起加载。如果您每分钟运行一次,任何主机更改都应在 1 分钟内传播,除非 EC2 api 更新缓慢。

于 2013-02-19T23:37:33.150 回答