2011-04-09 78 views
0

如何將新代碼部署到生產中,以便客戶體驗不會中斷?在部署期間最大限度地減少客戶中斷

我們假設一個電子商務網站處於負載平衡的環境中,其中沒有共享會話狀態。 Tomcat是應用程序服務器。 (1)使用JavaRebel,但我沒有這方面的經驗,不知道會出現什麼問題(可能會話對象不匹配,例如,如果您從一個(2)實時監控用戶在購物體驗中的位置,並防止將新商品添加到購物車中;等到所有現有購物者完成訂單或已過期;然後關閉服務器並部署新代碼。

任何想法?或者,這種情況下,在Web服務器之間使用類似兵馬俑的方式共享會話數據至關重要?然後,如何將新代碼部署到會話的對象成員已被刪除或添加的Web服務器?

+0

對於那些要求在這個問題上關閉的人,這是怎麼一回事呢?常見問題表明我可以問「編程專業特有的問題」。 – Bradford 2011-04-09 14:17:03

+0

我沒有投票結束,但部署通常是系統管理員/操作而不是開發人員的關注,因此服務器故障可能更合適。 – SimonJ 2011-04-09 14:30:13

回答

1

一種常見的方法是每次從負載平衡池中取出一個服務器,將新代碼部署到該服務器,然後將其放回池中。我見過

+0

但這樣做會導致用戶跳到下一個沒有會話信息的可用Web服務器。 – Bradford 2011-04-09 14:26:31

2

的常用方法:如果沒有太多的狀態,那麼存儲它的客戶端,在cookie

  • - 這也有不需要IP親和力提出要求,可以更均勻地分佈的優勢
  • 共享存儲(DB,兵馬俑等) - 顯然,這可以在一個安靜的時間成爲一個瓶頸
  • 部署和希望沒有人從池中新的會話,然後監視日誌,並等待注意到
  • 刪除服務器請求關閉
相關問題