1
我有一堆EC2服務器負載均衡。 部分服務器不共享會話,用戶不斷登錄和註銷。Amazon EC2多個服務器共享會話狀態
我怎樣才能讓所有服務器共享一個會話, 甚至可能使用partitionresolver解決方案
public class PartitionResolver : System.Web.IPartitionResolver
{
private String[] partitions;
public void Initialize()
{
// create the partition connection string table
// web1, web2
partitions = new String[] { "192.168.1.1" };
}
public String ResolvePartition(Object key)
{
String oHost = System.Web.HttpContext.Current.Request.Url.Host.ToLower().Trim();
if (oHost.StartsWith("10.0.0") || oHost.Equals("localhost"))
return "tcpip=127.0.0.1:42424";
String sid = (String)key;
// hash the incoming session ID into
// one of the available partitions
Int32 partitionID = Math.Abs(sid.GetHashCode()) % partitions.Length;
return ("tcpip=" + partitions[partitionID] + ":42424");
}
}
-theo
你可以嘗試使用SQL Server來存儲您的會話數據。它不是最有效的,但是當你考慮到不同種類的EC2實例時,它可以爲你更好地工作。 – RC1140 2010-03-12 08:27:00
現在我更願意將它保持在SQL之外。 – 2010-03-12 09:14:09