【发布时间】:2011-04-28 17:28:45
【问题描述】:
我有 2 个 EC2 实例运行 Glassfish 应用服务器(运行完全相同的已部署应用程序),这些实例在 Elastic Load Balancer 下运行。这很好用,但我担心缓存与 EJB 不一致。
情况: 客户端向 ELB 发送请求,该请求转发到 EC2 实例 1。一些 EJB 对象,我们称之为 EJB1,被缓存。 客户端 --> ELB --> EC2-1(EJB1 缓存)
不久之后,客户端发送另一个请求,但现在该请求被转发到 EC2 实例 2。EJB1 现在缓存在该实例上。 客户端 --> ELB --> EC2-2(EJB1 缓存)
不久之后,客户端发送另一个请求并转发到 EC2 实例 1。EJB1 仍在缓存中但不是最新的,从而导致缓存不一致。 客户端 --> ELB --> EC2-1(EJB1 缓存)
不幸的是,我还没有真正看到这个问题,但我觉得这是一种可能性。除了关闭 EJB 的缓存之外,防止这种情况发生的正确方法是什么?
谢谢。
【问题讨论】:
标签: glassfish amazon-ec2 ejb load-balancing