Glassfish Amazon AWS EC2实例和ELB缓存问题

Glassfish Amazon AWS EC2实例和ELB缓存问题,glassfish,amazon-ec2,ejb,load-balancing,Glassfish,Amazon Ec2,Ejb,Load Balancing,我有两个EC2实例运行Glassfish app server(运行完全相同的已部署应用程序),它们在弹性负载平衡器下运行。这工作得很好,但我担心缓存与EJB不一致 情况: 客户端向ELB发送请求,ELB将请求转发到EC2实例1。一些EJB对象(我们称之为EJB1)被缓存。 客户端-->ELB-->EC2-1(EJB1缓存) 不久之后,客户机发送另一个请求,但该请求现在被转发到EC2实例2。EJB1现在缓存在该实例上。 客户端-->ELB-->EC2-2(EJB1缓存) 不久之后,客户端发送另一

我有两个EC2实例运行Glassfish app server(运行完全相同的已部署应用程序),它们在弹性负载平衡器下运行。这工作得很好,但我担心缓存与EJB不一致

情况: 客户端向ELB发送请求,ELB将请求转发到EC2实例1。一些EJB对象(我们称之为EJB1)被缓存。 客户端-->ELB-->EC2-1(EJB1缓存)

不久之后,客户机发送另一个请求,但该请求现在被转发到EC2实例2。EJB1现在缓存在该实例上。 客户端-->ELB-->EC2-2(EJB1缓存)

不久之后,客户端发送另一个请求并转发到EC2实例1。EJB1仍在缓存中,但不是最新的,因此导致缓存不一致。 客户端-->ELB-->EC2-1(EJB1缓存)

不幸的是,我还没有真正看到这个问题,但我觉得这是一种可能性。除了关闭EJB的缓存之外,还有什么正确的方法来防止这种情况发生


谢谢。

亚马逊在负载平衡器上提供了“”支持。这意味着,假设用户启用了Cookie,它们将在会话的生命周期内发送到同一个EC2实例。

除非您实现2级缓存,否则您的实例将不会共享缓存

下面是有关2级缓存解决方案的几个链接。 (开源)
(大量现金)

谢谢你的回复。我认为这肯定会起作用,但是它需要修改我们的应用程序(这是针对iOS本机应用程序的)。这是我们将要研究的问题。谢谢你的回答——这是我们在扩大规模时必须研究的问题。目前,我们已经禁用了应用服务器上的缓存。