2011-04-28 80 views
1

我有2個EC2實例運行Glassfish應用服務器(運行完全相同的部署應用程序),並且這些實例在Elastic Load Balancer下運行。這很好,但我擔心緩存EJB的不一致性。Glassfish Amazon AWS EC2實例和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的緩存之外,防止這種情況發生的正確方法是什麼?

謝謝。

回答

1

亞馬遜在負載均衡器處提供「session stickiness」支持。這意味着,假設用戶啓用了Cookie,它們將在會話的整個生命週期內發送到相同的EC2實例。

+0

感謝您的回覆。這肯定會工作,我會想,但它需要修改我們的應用程序(這是一個iOS本機應用程序)。這是我們將考慮的事情。 – aSadhankar 2011-04-29 20:59:04