분산 SessionState "위조"구현

1226 단어
통상적인 의미의 분포식 상태 서버는 부하를 균형 있게 하고 서비스 처리 스케줄링을 고려해야 한다. 다음과 같은 방법은 그 정수를 버리고 무작위 알고리즘에 따라 상태 서비스를 분배한다.
실현하기는 비교적 간단하다.
1、Web.config
<sessionState mode="StateServer"  timeout="20" partitionResolverType="Pay.HttpModule.PartitionResolver" />

2. 실현
    /// <summary>
    ///  SessionState
    /// </summary>
    public class PartitionResolver : System.Web.IPartitionResolver
    {
        private String[] partitions;

        public void Initialize()
        {
            // create the partition connection string table
            partitions = PayConfig.SessionServers.Split(new char[] { ',' });
        }

        public String ResolvePartition(Object key)
        {
            if (String.IsNullOrEmpty(PayConfig.SessionServers))
            {
                return "";
            }
            String sid = key as string;
            // hash the incoming session ID into   
            // one of the available partitions 
            int partitionID = Math.Abs(sid.GetHashCode()) % partitions.Length;
            return "tcpip=" + partitions[partitionID];
        }
    }

좋은 웹페이지 즐겨찾기