6.7. 배포 가능한 웹 세션 구성의 distributable-web 하위 시스템
D istributable-web 하위 시스템은 유연하고 배포 가능한 웹 세션 구성을 용이하게 합니다. 하위 시스템은 배포 가능한 웹 세션 관리 프로필 집합을 정의합니다. 이러한 프로필 중 하나는 기본 프로필로 지정됩니다. 배포 가능한 웹 애플리케이션의 기본 동작을 정의합니다. 예를 들면 다음과 같습니다.
[standalone@embedded /] /subsystem=distributable-web:read-attribute(name=default-session-management)
{
"outcome" => "success",
"result" => "default"
}기본 세션 관리는 다음 예제와 같이 Infinispan 캐시 내에 웹 세션 데이터를 저장합니다.
[standalone@embedded /] /subsystem=distributable-web/infinispan-session-management=default:read-resource
{
"outcome" => "success",
"result" => {
"cache" => undefined,
"cache-container" => "web",
"granularity" => "SESSION",
"affinity" => {"primary-owner" => undefined}
}
}이 예제에서 사용되는 속성과 가능한 값은 다음과 같습니다.
-
캐시: 연결된 cache-container 내의 캐시. 웹 애플리케이션의 캐시는 이 캐시의 구성을 기반으로 합니다. 정의되지 않은 경우 연결된 캐시 컨테이너의 기본 캐시가 사용됩니다. -
cache-container: 세션 데이터가 저장되는Infinispan하위 시스템에 정의된 cache-container입니다. 세분화: 세션 관리자가 세션을 개별 캐시 항목에 매핑하는 방법을 정의합니다. 가능한 값은 다음과 같습니다.-
세션: 모든 세션 속성을 단일 캐시 항목 내에 저장합니다.ATTRIBUTE단위보다 비용이 높지만 모든 교차 기여 개체 참조를 유지합니다. -
속성: 각 세션 속성을 별도의 캐시 항목 내에 저장합니다.SESSION단위보다 효율적이지만 교차 기여 개체 참조는 유지하지 않습니다.
-
유사성: 서버에 대해 웹 요청에 있어야 하는 선호도를 정의합니다. 관련 웹 세션의 선호도는 세션 ID에 추가할 경로를 생성하는 알고리즘을 결정합니다. 가능한 값은 다음과 같습니다.-
affinity=none: 웹 요청에는 노드에 대한 선호도가 없습니다. 웹 세션 상태가 애플리케이션 서버 내에서 유지 관리되지 않는 경우 이 기능을 사용합니다. -
affinity=local: 웹 요청에는 세션 요청을 마지막으로 처리한 서버와의 선호도가 있습니다. 이 옵션은 고정 세션 동작에 해당합니다. -
affinity=primary-owner: 웹 요청에는 세션의 기본 소유자에 대한 선호도가 있습니다. 이는 이 분산 세션 관리자의 기본 선호도입니다. 백업 캐시가 분산되거나 복제되지 않은 경우affinity=local과 동일하게 작동합니다. -
affinity=ranked: 웹 요청에는 기본 및 백업 소유자가 포함된 목록에서 사용 가능한 첫 번째 멤버와 마지막으로 세션을 처리하는 멤버에 대한 선호도가 있습니다. -
affinity=ranked delimiter: 인코딩된 세션 식별자 내에서 개별 경로를 구분하는 데 사용되는 구분 기호입니다. -
affinity=ranked max routes: 세션 식별자로 인코딩할 최대 경로 수입니다.
-
여러 순서로 정렬된 경로와 세션 선호도가 있으려면 로드 밸런서에서 순위 세션 선호도를 활성화해야 합니다. 자세한 내용은 JBoss EAP 의 구성 가이드에서 부하 분산에서 순위가 지정된 세션 선호도 활성화 를 참조하십시오.
이름별로 세션 관리 프로필을 참조하거나 배포별 세션 관리 구성을 제공하여 기본 배포 가능한 세션 관리 동작을 재정의할 수 있습니다. 자세한 내용은 Overide Default Distributable Session Management Behavior 를 참조하십시오.
6.7.1. 원격 Red Hat Data Grid에 웹 세션 데이터 저장
D istributable-web 하위 시스템은 HotRod 프로토콜을 사용하여 원격 Red Hat Data Grid 클러스터에 웹 세션 데이터를 저장하도록 구성할 수 있습니다. 원격 클러스터에 웹 세션 데이터를 저장하면 캐시 계층이 애플리케이션 서버와 독립적으로 확장할 수 있습니다.
설정 예:
[standalone@embedded /]/subsystem=distributable-web/hotrod-session-management=ExampleRemoteSessionStore:add(remote-cache-container=datagrid, cache-configuration=__REMOTE_CACHE_CONFIG_NAME__, granularity=ATTRIBUTE)
{
"outcome" => "success"
}이 예제에서 사용되는 속성과 가능한 값은 다음과 같습니다.
-
remote-cache-container: 웹 세션 데이터를 저장하기 위해Infinispan하위 시스템에 정의된 원격 캐시 컨테이너입니다. cache-configuration: Red Hat Data Grid 클러스터의 캐시 구성 이름입니다. 새로 생성된 배포별 캐시는 이 구성을 기반으로 합니다.이름과 일치하는 원격 캐시 구성이 없으면 원격 컨테이너에 새 캐시 구성이 생성됩니다.
세분화: 세션 관리자가 세션을 개별 캐시 항목에 매핑하는 방법을 정의합니다. 가능한 값은 다음과 같습니다.-
세션: 모든 세션 속성을 단일 캐시 항목 내에 저장합니다.ATTRIBUTE단위보다 비용이 높지만 모든 교차 기여 개체 참조를 유지합니다. -
속성: 각 세션 속성을 별도의 캐시 항목 내에 저장합니다.SESSION단위보다 효율적이지만 교차 기여 개체 참조는 유지하지 않습니다.
-