6

我有一个带有codeigniter mysql的站点,其中安装了arrowchat。该网站(比如 xyz.com)托管在亚马逊环境中。它具有用于图像上传的S3实现、用于静态文件服务的CDN实现、 用于 db 的RDS实现、用于邮件发送的SES 。有计划为该站点集成Auto Scaling 。我已经研究了如何在这种情况下实现箭头聊天,因为箭头聊天有模板和配置文件被缓存,因此必须对此进行一些研究以实现实例之间的缓存共享。我试过了

一个)。创建了一个S3存储桶并将其映射到 arrowchat 缓存文件夹 - 但它并不顺利,因为 arrowchat 库代码包含缓存目录中的文件,因此在 s3 中我们不能直接在我们的 arrowchat 代码中包含文件。

乙)。创建了一个子域chat.xyz.com并在该子域中安装了箭头聊天并在实例中使用它。- 除非通过一些代码修复解决了一些跨域代码问题,否则效果很好。问题是,我们必须在域和子域中管理相同的代码。

请让我知道我列出的方法是否正确。如果没有,请让我知道是否有任何其他建议。

4

1 回答 1

1

您需要ElasticCache在自动缩放组的所有实例之间使用和共享节点池。如果模板需要处理,您不能amazon S3直接使用。(特定实例上的 php 代码必须读取模板,对其进行处理并将其发送回)。伪代码:将唯一的 Key 关联到每个模板(即 data/template_name )。当请求模板时,检查 Memcache 是否有这样的 Key。否则从S3缓存中读取并加载它。一旦在缓存中,所有实例都将能够使用该单个值。

于 2013-07-09T01:09:51.500 回答