- Stateless
- 웹서버 통신(http) 특성상 사용자(브라우저)의 이전 상태 client(쿠키) or server(세션) 정보를 기록하지 않는 접속이란 의미입니다.
- 브라우저가 데이터를 전송할 때마다 연결하고 바로 끊어버리는 방식입니다.
- Stateless 서비스는 가용성을 제공하기 위해서 여분의 인스턴스를 추가하고 로드 벨런스를 사용합니다.
- 웹서버 통신(http) 특성상 사용자(브라우저)의 이전 상태 client(쿠키) or server(세션) 정보를 기록하지 않는 접속이란 의미입니다.
- Stateful
- 웹서버가 사용자(브라우저)의 상태 client(쿠기) or server(세션) 정보를 기억하고 있다가 유용한 정보로써 활용한다는 의미입니다.
- 클라이언트에서 다른 클라이언트로, 또는 서버에서 특정 클라이언트로 메시지를 전송할 수 있습니다.
- 서버에서 클라이언트 세션을 유지할 필요가 없을 때 서버 리소스를 절약하는 장점이 있습니다.
- Stateful 방식은 하나의 서버가 1만 명의 1만 명의 클라이언트를 처리할 능력이 있을 때 그보다 많은 수의 클라이언트가 몰리면 이미 연결된 1만 명의 클라이언트 중 일부가 빠져야 다음 클라이언트가 처리됩니다.
- 하지만 Stateless 방식은 순간 접속 요청 인원을 기준으로 하므로 많은 클라이언트가 몰려도 할당된 처리량이 끝나면 다음 처리가 가능합니다.
- 웹서버가 사용자(브라우저)의 상태 client(쿠기) or server(세션) 정보를 기억하고 있다가 유용한 정보로써 활용한다는 의미입니다.
- Stateful 서비스
- 기능상 Stateful 방식이 강력하고 편리합니다.
- Stateless의 모든 기능은 Stateful 방식으로도 구현이 가능하지만 그 반대는 아닙니다.
- Stateless의 단점은 매 요청 시마다 상태 정보를 전달해야 하기 때문에 그만큼 네트워크 리소스를 소비해야 합니다.
- 또한, 서버 쪽에서는 메시지 처리하기 위한 사전 작업이 필요합니다. 예를 들면 http 통신방식에 client의 요청은 서로 완전히 독립적이고 이전 요청에 의존적이지 않습니다.
- 따라서 각각의 요청은 server가 처리할 수 있도록 하기 위한 모든 정보를 제공해야 합니다.
- 그러나 Stateful 서비스에 있어서 가용성을 제공하기 위해서는 여분의 인스턴스와 '로드 벨런스'로 충분하지 않습니다. 즉 Stateful 한 서버의 상태 정보를 구현하기 복잡합니다.
- 기능상 Stateful 방식이 강력하고 편리합니다.
- Stateful 통신 구조의 한계
- 결론
- stateful 방식은 기능 구현상 편하지만 상태를 계속해서 가지고 있기 때문에 캐시의 활용도가 떨어지고
매 요청마다 같은 데이터를 데이터베이스에 전송하는 것처럼 서버에 부담을 줄 수 있습니다. - stateless 방식은 매 요청 시마다 상태 정보를 저장해야 하기 때문에 네트워크 리소스를 서버 쪽에서 소모해야 하고 상태 값 저장 기능을 위한 사전 작업이 필요하지만 caching, load balancing, scale-out에 용이합니다.
- MMOPRG와 같이 대규모 사용자가 실시간으로 전투할 때 고성능의 처리능력과 안정성이 보장되어야 하므로
Stateful Server가 적합합니다. - 실시간 연동이 상대적으로 덜 필요한 웹 서버는 네트워크 비용을 줄이기 위한 Stateless Server가 적합합니다.
서비스하는 형태의 특성을 고려하여 stateful or stateless 방식을 채택해야 합니다.
- stateful 방식은 기능 구현상 편하지만 상태를 계속해서 가지고 있기 때문에 캐시의 활용도가 떨어지고
'used-market-server Project' 카테고리의 다른 글
spring boot 환경에서 session 저장하기 (0) | 2020.07.24 |
---|---|
Redis와 memcached 비교 (0) | 2020.06.28 |
세션 클러스터링 이란? (0) | 2020.06.25 |
웹서버 , WAS 비교 (0) | 2020.06.20 |
대규모 트래픽 분산처리를 위한 서버 리소스 증설법 (Scale-Up / Scale-Out) (0) | 2020.06.19 |