자바로 로드밸런서 구현하기
[Java로 로드밸런서 구현하기] 로드밸런서의 개념 (1)
-
각각의 서버는 로드밸런서에 연결되어야 한다 -> 서버에 대한 정보를 로드밸런서가 알고 있어야 함
설정파일을 사용할 것이다. -
json의 형태로 관리 -
dynamic하게 구현할 것이다 -> 로드밸런서는 프로토콜과 포트를 바인딩하고 listen해야 한다
load balancer는 register 받으면 하나씩 balance할 수 있는 기능을 구현해야한다 (round-robin으로 구현)
=> 그러고 나서 ack를 반환한다.
- 서버가 종료될 때, 로드 밸런서는 포트를
close한다. - 다른 서버는 여전히
open port를 유지한다 => member를 관리한다
- 로드 밸런서는 각각의 서버에 hello message를 보낸다
hello message를 받으면 server에
traffic을 보낸다 - server와 disconnection을 하면 traffic을 더 이상 보내지 않고 port를
close한다.
-
비록 새로운 서버가 추가되더라도, 클라이언트의 트래픽은 같은 서버에 keeps going
-
기본적으로 로드밸런서
RountRobin의 형태로 구현- Need to maintain a serverHandler list mapped to the open port
- Need to maintain a session table
-
TCP UDP같은 경우는 network를 잘써서 줘야한다.
-
서론
-
구현
- architecture적으로 어떻게 짰는지 (code level말고)
- 컴포넌트를 어떻게 나눴는지
- 멀티쓰레드? 싱글 쓰레드?
- 왜 그렇게 선택했는지
- architecture적으로 어떻게 짰는지 (code level말고)
-
환경설정
- 어떻게 돌리는지
- 컴파일하고 run어떻게 하는지
- 스크린샷
- 성능에 대한 그래프와 테이블
- 어떻게 돌리는지











