我有一个站点,其中包含 codeigniter , mysql ,其中安装了arrowchat。
该网站(例如xyz.com)托管在亚马逊环境中。它具有用于图像上传的 S3 实现,用于静态文件服务的 CDN 实现,用于db的 RDS 实现,用于邮件发送的 SES 。有计划为站点集成自动缩放。我已经研究了在这种情况下如何实现arrowchat,因为arrowchat已缓存了模板和配置文件,因此必须对此进行一些研究,以实现实例之间的缓存共享。我试过了
一种)。创建了一个 S3 存储桶,并将其映射到arrowchat缓存文件夹中-但是它并没有很好地作为arrowchat库代码包含在缓存目录中的文件,因此在s3中,我们无法将文件直接包含在arrowchat代码中。
b)。创建了一个子域 chat.xyz.com ,并将arrowchat安装在该子域中,并在实例中使用了它。 -很好地解决了一些跨域代码问题,这些问题已通过一些代码修复得以解决。问题是,我们必须在域和子域中管理相同的代码。
请让我知道我列出的方法是否正确。如果没有,请告诉我是否还有其他建议。
最佳答案
您需要使用ElasticCache
并在自动伸缩组的所有实例之间共享节点池。如果模板需要处理,则不能直接使用amazon S3
。 (特定实例上的php代码必须读取,处理模板并将其发送回去)。
伪代码:
将唯一键与每个模板相关联(即data/template_name)。
当请求模板时,请在Memcache上检查是否有这样的 key 。
否则,请从S3
中读取它,并将其加载到缓存中。一旦进入缓存,所有实例都将能够使用该单个值。
关于codeigniter - Arrowchat和Amazon实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13642169/