5

我正在考虑在 AWS 上托管一个标准的 Java Web 应用程序,新的 Elastic Beanstalk ( http://aws.amazon.com/elasticbeanstalk/ ) 似乎拥有我们想要的大部分功能。我不知道的一件事是如何进行分布式缓存。似乎 AWS 不允许多播发现新节点,所以我不确定如何将自动缩放过程启动的新节点集成到现有的分布式缓存中。任何建议/最佳实践表示赞赏。

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

4

3 回答 3

6

今天(2011-08-23 之后)的另一条路线是使用Amazon ElastiCache,它与 Memcached 协议兼容并为您在云中运行。可以轻松地将内容放入内存缓存中。

于 2011-08-26T08:09:43.893 回答
1

以下是我的一些想法:

假设您在一些 EC2 实例中运行分布式缓存实例(例如 memcached),并且您使用 AWS 的弹性 IP映射到这些实例。由于弹性 IP 是一种静态 IP 地址,现在您可以预先配置新的 Web 应用程序实例以通过 memcached IP 定位 memcached

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

于 2011-05-20T02:05:55.373 回答
0

如果您希望在每个实例上单独缓存,我建议使用多容器 Docker 环境for EB,以方便设置您的应用程序和每个节点上的缓存层。Elastic Beanstalk 部分将像以前一样在普通专用平台上工作,如果您使用私有库等,可能需要在那里进行一些重新配置,具体取决于您的应用程序详细信息。但是,如果您希望单独节点上的缓存层相互通信,则可能不容易实现......

于 2017-04-19T09:39:35.410 回答