생각해보기
3계층형 시스템을 살펴보자 본문
더보기
앞서...
2 계층(클라이언트 - 서버형 아키텍처)
클라이언트 - 화면표시나 단순한 계산만 실행하고, 필요한 경우 서버에 의뢰한다
서버 - 모든 클라이언트 처리를 접수한다
장점
- 클라이언트 측에서 많은 처리를 할 수 있어 소수의 서버로 다수의 클라이언트 처리 가능하다
단점
- 클라이언트 측의 소프트웨어 필요하고, 정기 업데이트가 필요하다
- 서버 확장성에 한계가 발생할 수 있다
3 계층이란?
클라이언트-서버형을 발전시킨 것
'프레젠테이션 계층', '애플리케이션 계층', '데이터 계층'의 3층 구조로 분할되어 있다.
프레젠테이션 계층
- 사용자 입력을 받는다
- 웹 브라우저 화면을 표시한다
애플리케이션 계층
- 사용자 요청에 따라 업무 처리를 한다
데이터 계층
- 애플리케이션 계층의 요청에 따라 데이터 입출력한다
장점
- 서버 부하 집중 개선
- 클라이언트 단발의 정기 업데이터가 불필요
- '처리 반환'에 의한 서버 부하가 덜 든다(정적 리소스는 웹서버만 거친다)
단점
- 구조가 클라이언트-서버 구성보다 복잡하다
웹 데이터 흐름
클라이언트 PC부터 웹 서버까지
- 노트북의 '웹 브라우저'가 특정 인터넷 사이트에 요청 보낸다
- DNS 서버에 질의해 해당하는 IP주소로 '웹 서버'에 요청을 보낸다
- 웹 서버의 'httpd' 프로세스가 요청을 접수한다
- http가 받은 요청 내용을 분석해 디스크에 읽을지, AP(application) 서버에 질의할지 판단한다
- 디스크 경우 -> 커널의 '시스템 콜'로 실행되어 디스크 내용 취득, AP서버 질의의 경우 -> 커널을 통해 NIC에 대한 네트워크 통신이 요청된다
- (AP 서버 질의의 경우) 스위치를 경유 해서 AP 서버에 대한 질의 수행
웹 서버부터 AP 서버까지
- 웹 서버에서 온 요청이 NIC를 경유하고 커널이 인터럽트 수행한다
- 위의 스레드가 요청을 접수하고 계산을 한다, DB에 질의가 필요한 부분이 있다면 대기한다
- DB 접속은 '드라이버'를 통해서 '연결 풀'로 관리되고, JVM 전체가 리소스를 관리하기 때문에 DB 접속성도 유지한다, DB에 대한 접속 요청은 OS '시스템 콜'로 실행되고 DB 서버(외부)와 커널을 통해서 네트워크 통신이 이루어진다
- 네트워크 경유로 DB 서버에 대한 질의가 이루어진다
# DB 서버 이외의 옵션
- 웹 서버에 처음부터 JVM에 데이터가 캐시 되어 있으면 데이터 바로 반환
- DB 서버보다 빠른 '캐시 전용 서버'가 있으면 그곳에 접속
AP 서버부터 DB 서버까지
- DB 서버에서 DB프로세스가 요청을 접수한다
- 이전에 사용한 정보가 있다면 캐시되어 있기 때문에 공유 메모리를 검색한다
- 공유 메모리에 없는 경우 시스템 콜을 통해 디스크를 읽는다
- 디스크의 데이터는 요청을 보낸 프로세스로 반환된다
- 한번 액세스 한 데이터는 메모리에 캐시 형태로 저장된다
- 요청 보낸 AP 서버로 반환한다
'IT인프라' 카테고리의 다른 글
인프라와 병목현상 (0) | 2021.10.31 |
---|---|
인프라 구조에 대해 알아보자 (0) | 2021.10.30 |
네트워크와 처리 흐름 (0) | 2021.10.26 |
인프라 응용 이론에 대해 알아보자 (0) | 2021.10.25 |
인프라에 앞선 기본 이론 (0) | 2021.10.22 |
Comments