본문 바로가기
웹개발자 v2.0

작업 대기열 및 서버

by "뭉치" 2020. 7. 29.
728x90

https://engineering.videoblocks.com/web-architecture-101-a3224e126947

 

Web Architecture 101

The basic architecture concepts I wish I knew when I was getting started as a web developer

engineering.videoblocks.com

 

대부분의 웹 응용 프로그램은 사용자의 요청에 응답하는 것과 직접 관련이없는 장면 뒤에서 일부 작업을 비동기 적으로 수행해야합니다. 예를 들어 Google은 검색 결과를 반환하기 위해 전체 인터넷을 크롤링하고 색인을 생성해야합니다. 검색 할 때마다이 작업을 수행하지 않습니다. 대신 웹을 비동기 적으로 크롤링하여 검색 색인을 업데이트합니다.

 

비동기 작업을 수행 할 수있는 다양한 아키텍처가 있지만 가장 보편적 인 것은 내가 "작업 큐"아키텍처라고하는 것입니다. 실행해야하는 "작업"대기열과 대기열에서 작업을 실행하는 하나 이상의 작업 서버 (종종 "작업자")로 구성됩니다.

 

작업 대기열은 비동기 적으로 실행해야하는 작업 목록을 저장합니다. 가장 간단한 것은 선입 선출 (FIFO) 대기열이지만 대부분의 응용 프로그램에는 일종의 우선 순위 대기열 시스템이 필요합니다. 앱이 일정한 일정에 따라 또는 사용자 작업에 따라 결정된 작업을 실행해야 할 때마다 해당 작업을 대기열에 추가하기 만하면됩니다.

 

예를 들어 스토리 블록은 작업 대기열을 활용하여 시장 지원에 필요한 많은 비하인드 작업을 지원합니다. 비디오 및 사진을 인코딩하고 메타 데이터 태그 지정을 위해 CSV를 처리하며 사용자 통계를 집계하고 비밀번호 재설정 이메일을 보내는 등의 작업을 수행합니다. 비밀번호 재설정 이메일 전송과 같은 시간에 민감한 작업이 최대한 빨리 완료되도록 우선 순위 대기열로 업그레이드했지만 간단한 FIFO 대기열로 시작했습니다.

 

작업 서버는 작업을 처리합니다. 작업 대기 행렬을 폴링하여 수행 할 작업이 있는지 확인하고 작업이있는 경우 대기 행렬에서 작업을 팝하여 실행합니다. 기본 언어 및 프레임 워크 선택은 웹 서버만큼 다양하므로이 기사에서는 자세히 다루지 않겠다.

728x90

'웹개발자 v2.0' 카테고리의 다른 글

서비스(작성중)  (0) 2020.07.29
전문 검색 서비스  (0) 2020.07.29
캐싱 서비스(Caching service) 란  (0) 2020.07.29
데이터베이스(Database)란  (0) 2020.07.29
WAS(Web Application Server) 란  (0) 2020.07.29

댓글