4

我正在考虑在AWS上托管标准Java Web应用程序,并且新的Elastic Beanstalk(http://aws.amazon.com/elasticbeanstalk/)似乎拥有我们想要的大部分内容。我无法弄清楚的一件事是如何做分布式缓存。看起来AWS不允许多节点发现新节点,所以我不确定自动缩放过程启动的新节点应该如何集成到现有的分布式缓存中。任何建议/最佳实践表示赞赏。AWS Elastic Beanstalk缓存?

更新:理想情况下,这将是每个应用程序服务器实例的本地缓存。最好的情况下,应该是一个休眠级别2缓存配置的东西像ehcache或terracota。

回答

5

另一条路线到今天下去(2011-08-23)之后是使用Amazon ElastiCache这是协议兼容Memcached的在云中为您运行。将事情放入内存缓存很容易。

+0

谢谢,这现在看起来像要走的路。本来我一直在寻找休眠自动发现二级高速缓存,但我知道想这不会正确缩放反正,像安装一个内存缓存是要走的路。 – 2011-08-28 03:20:37

1

下面是我的一些想法:

假设你已经分发cacheing例如,如在一些EC2实例memcached的运行和使用Elastic IP从AWS映射到这些实例。由于Elastic IP是一种静态IP地址,现在您可以预先配置新的Web应用程序实例以定位memcached通过memcached分配IP

在自动缩放期间,现在可以找到您的memcached服务器。

+0

这绝对是一个有趣的选择,但我一直在,我想这一点更加明确成为分布式缓存,对每个应用程序服务器都是本地的。理想的情况是,因为这是一个豆茎,所以Java,它会像的Ehcache什么休眠2级缓存解决方案。我会更新这个问题,使其更清楚。感谢您提供弹性IP建议,这很好理解。 – 2011-05-20 15:06:45

0

如果你想要在每个实例上单独使用缓存,我建议使用Multicontainer Docker Environments作为一种方法来方便设置你的应用程序,并在每个节点上设置你的缓存层。弹性青苗部分的工作只是像以前一样正常的专用平台,可如果你正在使用私有库等,这取决于你的应用程序的细节还需要有一些重新配置。但是,如果你想在不同的节点缓存的各层互相交谈,可能不容易才达到...