我希望能夠部署我的asp.net/mvc網站的新版本,而不會丟失客戶端會話狀態或導致任何停機。我正在考慮完成此任務的方式是創建一個Windows網絡負載平衡服務器,以便客戶端可以通過單個URL(如https://mysite.org/)訪問它。它會將流量重定向到其他兩個站點之一(A.mysite.org或B.mysite.org)。我將NLB的親和力設置爲Single,並禁用站點B,以便所有會話都被定向到站點A.當我需要部署新版本的站點時,我將部署到站點B,啓用站點B,以及禁用站點A.所以,站點A上的每個人都可以呆在那裏(使用版本1),直到他們註銷。所有新的會話將連接到站點B並運行版本2.下次我部署時,我會做相反的事情。NLB是在部署新代碼時保持網站可用的好方法嗎?
我從來沒有使用NLB。這是否合適?有一個更簡單,更簡單的方法嗎?
NLB如何知道客戶端X的請求已在A或B上有會話? IE瀏覽器。當他們註銷網站並嘗試再次登錄時,nlb會將它們發送到他們之前所在的網站上嗎?