우선 WebLogic에서 session을 복제하는 방법에는 다음과 같은 것들이 존재한다.
1. In-memory replication
- In-memory를 사용하게 되면 WebLogic은 session stated를 한 서버에서 다른 서버로 복사하게 된다. Primary 서버는 첫번째 연결이 되는 client의 primary session state를 생성시키고 이를 secondary 서버에 복사하게 된다. 이 복제는 kept-up-to-date(거의 실시간) 으로 진행되며, primary 서버가 죽을 때 secondary 서버가 복제된 session을 사용하게 된다.
- persistent-store-type은 replicated 또는 replicated_if_clustered를 사용하게 된다.
2. JDBC-based replication
- WebLogic은 JSP나 servlet의 세션 유지를 위해 file-based 또는 JDBC-based 방법을 사용할 수 있다.
- persistent-store-type은 file, jdbc 를 사용 가능.
3. Coherence*Web
- Coherence*Web을 사용함으로써 거대한 양의 HTTP Session state 객체들을 따로 저장할 수 있다.
- persistent-store-type은 coherence-web을 사용.
=========================================================================
클러스터 간 Session state 복제 유형
- 네트워크 유형에 대한 클러스터 간 복제 최적화
- MAN (동기) : 대기 시간이 거의 없는 metro area network (MAN)을 이용하여 데이터를 보낼 수 있는 경우. 서버는 session state를 비동기적으로 메모리에서만 복제하게 된다.
- WAN(비동기) : 클러스터가 멀리 떨어져있거나/ 네트워크 대기 시간이 큰 wide area network(WAN)을 통해 데이터를 보내는 경우. 우선적으로 같은 클러스터에 있는 백업 서버에 동기적으로 session state를 복제한 후, 원격 클러스터의 서버에는 비동기적으로 복제하게 된다.
=========================================================================
클러스터 구성 전 고려해야 할 점
- network, security 구성 확인
=> MAN / WAN 사용 여부 확인
- 사용하고자 하는 machine 확인
=> dynamicall assigned IP 를 사용하는 machine에 WebLogic 사용 지양
- CPU 관련
=> Oracle에서는 one server per CPU로 시작하고 이후에 scale up 할 것을 권장하고 있음.
=========================================================================
Cluster의 state management
- stateless services
=> 호출 사이에 메모리의 상태를 유지하지 않는다.
- conversational services
=> 세션 동안 클라이언트의 모든 요청을 받지만, 특정 클라이언트의 요청만 처리. 일반적으로는 세션 전반에 걸쳐 애플리케이션 서버가 요청 사이에 반드시 유지해야 하는 상태 정보가 있다. 반면 Conversational Service는 메모리에 일시적인 상태를 유지하며, 이는 실패 시 손실될 수 있다. 세션 상태가 호출 시 공유 영구 저장소에 기록되는 경우 서비스는 상태를 저장하지 않는다.
- cached services
=> Cached services는 메모리의 상태를 유지하고 이를 사용하여 여러 클라이언트의 요청을 처리합니다. 캐시된 서비스의 구현은 캐시된 데이터의 복사본을 백업 저장소의 관련 데이터와 서로 일관성을 유지하는 정도에 따라 다릅니다.
- singleton services
=> Singleton services는 한 번에 클러스터에 속해져 있는 하나의 서버에서 활성화되며 여러 클라이언트의 요청을 처리합니다. Singleton services는 일반적으로 In-memory로 캐시하는 영구적 데이터로 지원됩니다. 이는 또한 재생성되거나 운영 중 실패가 생기더라도 메모리에서 일시적인 상태로 유지될 수 있습니다. 만약 fail-over가 생긴다면 singleton service를 동일한 서버에서 다시 시작하거나 새 서버로 마이그레이션해야 합니다.
'Oracle > Weblogic' 카테고리의 다른 글
MDS 와 AGL에 대하여 (0) | 2023.01.04 |
---|---|
WebLogic state Admin (0) | 2022.12.14 |
Admin console 접속 시 j_security_check (1) | 2022.10.13 |
WTC (0) | 2022.09.29 |
WebLogic 점검 간소화 (0) | 2022.09.22 |