Skip to content

JHZLO/Load_Balancer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯Load_Balancer🎯

자바로 로드밸런서 구현하기

[Java로 로드밸런서 구현하기] 로드밸런서의 개념 (1)


✅ Registration

image

  • 각각의 서버는 로드밸런서에 연결되어야 한다 -> 서버에 대한 정보를 로드밸런서가 알고 있어야 함

    설정파일을 사용할 것이다. - json의 형태로 관리

  • dynamic하게 구현할 것이다 -> 로드밸런서는 프로토콜과 포트를 바인딩하고 listen해야 한다

load balancer는 register 받으면 하나씩 balance할 수 있는 기능을 구현해야한다 (round-robin으로 구현) => 그러고 나서 ack를 반환한다.


✅ Unregistration

image

  • 서버가 종료될 때, 로드 밸런서는 포트를 close한다.
  • 다른 서버는 여전히 open port를 유지한다 => member를 관리한다

✅ Health Check

image

  • 로드 밸런서는 각각의 서버에 hello message를 보낸다 hello message를 받으면 server에 traffic을 보낸다
  • server와 disconnection을 하면 traffic을 더 이상 보내지 않고 port를 close한다.

✅ Load Balancing

image

  • 비록 새로운 서버가 추가되더라도, 클라이언트의 트래픽은 같은 서버에 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말고)
      • 컴포넌트를 어떻게 나눴는지
      • 멀티쓰레드? 싱글 쓰레드?
    • 왜 그렇게 선택했는지
  • 환경설정

    • 어떻게 돌리는지
      • 컴파일하고 run어떻게 하는지
    • 스크린샷
    • 성능에 대한 그래프와 테이블

테스트

image image image image

트러블 슈팅

image

image

image

부하테스트

image

About

자바로 로드밸런서 구현하기

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages