다시 작게나마 시작!!시작이 반이다!
애니메이션을 통해 기초부터 최신 로드 밸런싱 알고리듬까지 설명해주는 글이었다. 모르는 내용이 많이 있어서 새로 알게된 내용을 짧게나마 정리해보았다.
rps : 1초당 요청 횟수
로드밸런서
1) 서버와 사용자 사이에 있기 때문에 각 서버에 있는 미결 요청 수를 정확하게 추적할 수 있다.
로드밸런서가 다른 서버를 추가하는 이유 : rps의 비율로 인해 일부 요청이 처리전에 삭제되기 때문
라운드 로빈 로드 밸런싱
1) 로드 밸런서가 각 서버에 차례로 요청을 보내는 방식
2) 서버가 모두 똑같이 강력하고 요청이 모두 뚝같이 비쌀때 잘 작동 → 모든 요청비용이 동일한 경우 거의 없음
3) 요청비용이 다 다르기 때문에 요청대기열을 갖는다. → 서버 성능 불균형 발생
4) 서버의 성능에 따라 요청을 빠르게 삭제하거나 유휴상태가 됨
가중 라운드 로빈
각 서버의 알려진 전력 값을 가중치로 사용하고 더 강력한 서버를 반복하면서 더 많은 요청을 제공한다
자바 단점
1) 느린 실행 속도 : JVM 사용시 오버헤드가 발생하여 네이티브 코드보다 느린 실행속도
2) 더 많은 메모리 소비
3) 추가적 시간 소요 : JVM을 시작하고 클래스를 로드하는 과정 발생
JDK vs JRE vs JVM
1) JDK
-- 자바 언어를 사용하여 프로그램을 개발하기 위한 도구 모음
-- JRE와 JVM 포함
-- 컴파일러, 디버거, 자바 라이브러리, 문서생성도구 등을 포함
-- 개발자가 JDK를 사용하여 자바 프로그램 작성, 컴파일, 테스트 및 디버깅
2) JRE
-- 자바 프로그램을 실행하기 위한 환경 제공
-- JVM과 자바 클래스 라이브러리로 구성
-- 사용자가 JRE를 통해 자바 애플리케이션을 실행
3) JVM
-- 자바 프로그램의 실행을 담당하는 가상 머신
JAR vs WAR
1) JAR : Java Application Resource
자바 애플리케이션과 관련된 클래스 파일, 메타데이터, 리소스 파일 등을 하나의 압축파일로 묶은 것
개발자가 개발하기 위해 필요한 기능을 압축한 것
2) WAR
웹 애믚리케이션과 관련된 파일들을 하나의 압축 파일로 묶은 것
구성요소 : JSP, 서블릿, 클래스 파일, XML 설정 파일, 웹 리소스 (html, css 등)