KR20080057483A - 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법 - Google Patents

서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법 Download PDF

Info

Publication number
KR20080057483A
KR20080057483A KR1020060130831A KR20060130831A KR20080057483A KR 20080057483 A KR20080057483 A KR 20080057483A KR 1020060130831 A KR1020060130831 A KR 1020060130831A KR 20060130831 A KR20060130831 A KR 20060130831A KR 20080057483 A KR20080057483 A KR 20080057483A
Authority
KR
South Korea
Prior art keywords
server
load
client
servers
delay time
Prior art date
Application number
KR1020060130831A
Other languages
English (en)
Inventor
김성
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060130831A priority Critical patent/KR20080057483A/ko
Priority to US11/751,129 priority patent/US20080155552A1/en
Priority to CNA200710141801XA priority patent/CN101207635A/zh
Publication of KR20080057483A publication Critical patent/KR20080057483A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드 밸런싱 방법이 개시된다. 본 로드 밸런싱 시스템은 네트워크 트래픽을 처리하는 복수 개의 서버, 및, 복수 개의 서버로 연결 요청 신호를 전송하며, 복수 개의 서버 중 적어도 하나의 서버로부터 연결 요청 신호에 대응되는 응답 신호가 수신되면, 최초로 수신된 응답 신호를 전송한 서버와 연결하는 클라이언트를 포함한다. 이에 의해, 트래픽 로드를 효율적으로 분산 시킬 수 있다.
로드 밸런싱, 서버, 클라이언트, 지연 시간, 응답 지연 시간

Description

서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드 밸런싱 방법{Server, Client, Load balancing system, and load balancing method thereof}
도 1은 종래의 로드 밸런싱 시스템의 구성을 나타내는 블록도,
도 2는 본 발명의 일 실시예에 따른 로드 밸런싱 시스템의 구성을 나타내는 블록도,
도 3은 본 발명의 일 실시예에 따른 클라이언트의 구성을 나타내는 블록도,
도 4는 본 발명의 일 실시예에 따른 서버의 구성을 나타내는 블록도, 그리고
도 5 내지 도 7은 본 발명의 일 실시예에 따른 로드 밸런싱 방법을 설명하기 위한 흐름도이다.
* 도면 주요 부분에 대한 부호의 설명 *
200 : 로드 밸런싱 시스템 210 : 클라이언트
220,220-1 내지 220-N : 서버 310 : 제1 네트워크 인터페이스부
320 : 제1 제어부 410 : 제2 네트워크 인터페이스부
420 : 산출부 430 : 제2 제어부
본 발명은 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드 밸런싱 방법에 관한 것으로, 보다 상세하게는, 트래픽 로드를 효율적으로 분산 시킬 수 있는 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드 밸런싱 방법에 관한 것이다.
도 1은 종래의 로드 밸런싱 시스템의 구성을 나타내는 블록도이다.
도 1을 참조하면, 로드 밸런싱 시스템(100)는 복수 개의 클라이언트(10-1, 10-2,...,10-N), 로드 밸런서(20), 복수 개의 서버(30-1,30-2,30-3,...,30-N)를 포함한다.
로드 밸런싱 시스템(100)은 복수 개의 서버(30-1,30-2,30-3,...,30-N)를 로드 밸런서(20)에 등록하고 주기적으로 복수 개의 서버(30-1,30-2,30-3,...,30-N)의 로드 정보를 수집한 로드 레벨 테이블을 작성하여 로드 레벨을 조정한다. 일정 로드 레벨 이하의 서버들 중 같은 레벨의 서버는 라운드 로빈 방식으로 선택하여 로드 밸런싱을 수행한다.
즉, 로드 밸런서(20)는 복수 개의 클라이언트(10-1, 10-2,...,10-N) 연결 요청에 대해 서버를 선정시, 로드 레벨 테이블을 참조하여 가장 낮은 로드 레벨을 갖는 서버 중 라운드 로빈 방식으로 서버를 선정한다.
이에 따라, 복수 개의 서버(30-1,30-2,30-3,...,30-N)는 로드 밸러서(20)에 로드 정보를 전송하고, 주기적으로 로드 상태를 모니터링하여 로드 상태가 변하면, 이를 로드 밸러서(20)로 알린다.
그리고, 로드 밸런서(20)는 복수 개의 서버(30-1,30-2,30-3,...,30-N)의 로 드 상태에 대한 로드 레벨을 조정하고, 복수 개의 클라이언트(10-1, 10-2,...,10-N) 요청에 대해 가장 낮은 로드 레벨을 갖는 서버를 선정하여 알려준다.
이와 같이, 종래의 로드 밸런싱 시스템(100)은 로드 밸런서(20)를 이용하여 로드 밸런싱을 수행하여야 한다. 따라서, 로드 밸런서(20) 구입에 필요한 비용을 부담하여야 한다.
또한, 로드 밸런서(20)는 주기적으로 복수 개의 서버(30-1,30-2,30-3,...,30-N)에 대한 로드 상태를 수집하여야 하므로, 동적으로 변하는 서버의 부하 상태를 반영하기 위해서는 서버의 모니터링 주기를 짧게 하여야 한다. 그렇지 못할 경우에는 서버의 부하 상태를 정확하게 반영하지 못하게 되는 문제점이 있었다.
또한, 과도한 클라이언트의 연결 요청이 들어올 경우, 로드 밸런서(20)에 부하가 집중될 수 있다. 이에, 로드 밸런서(20)가 다운될 경우에는 로드 밸런싱을 할 수 없게되는 문제가 발생할 우려가 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은 트래픽 로드를 효율적으로 분산 시킬 수 있는 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드 밸런싱 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 로드 밸런싱 시스템은, 네트워크 트래픽을 처리하는 복수 개의 서버, 및, 상기 복수 개의 서버로 연결 요청 신호를 전송하며, 상기 복수 개의 서버 중 적어도 하나의 서버로부 터 연결 요청 신호에 대응되는 응답 신호가 수신되면, 최초로 수신된 응답 신호를 전송한 서버와 연결하는 클라이언트를 포함한다.
바람직하게는, 상기 복수 개의 서버 각각은 자신의 부하 상태에 근거하여 지연 시간을 산출하고, 상기 산출된 지연 시간 이후에 상기 응답 신호를 상기 클라이언트로 전송할 수 있다.
보다 바람직하게는, 상기 복수 개의 서버 각각은 아래 수식을 이용하여 상기 지연 시간을 산출할 수 있다.
Figure 112006094450686-PAT00001
상기 수식에서, DT는 지연 시간, LT는 서버 부하량, LC는 서버 부하 측정 항목 수, LW는 서버 부하 항목에 대한 가중치, MT는 최대 응답 시간을 의미한다.
한편, 본 발명의 일 실시예에 따른 클라이언트는, 복수 개의 서버와 신호를 송수신하는 네트워크 인터페이스부, 및, 상기 복수 개의 서버로 연결 요청 신호를 전송하며, 상기 연결 요청 신호에 대응되는 응답 신호가 수신되면, 최초 수신된 응답 신호를 전송한 서버와 연결하는 제어부를 포함한다.
한편, 본 발명의 일 실시에에 따른 서버는, 클라이언트와 신호를 송수신하는 네트워크 인터페이스부, 및, 부하 상태에 근거하여 지연 시간을 산출하는 산출부, 및, 상기 클라이언트로부터 연결 요청 신호가 수신되면, 상기 연결 요청 신호에 대응되는 응답신호를 상기 산출된 지연 시간 이후에 상기 클라이언트로 전송하는 제 어부를 포함한다.
바람직하게는, 상기 산출부는 아래 수식을 이용하여 상기 지연 시간을 산출할 수 있다.
Figure 112006094450686-PAT00002
상기 수식에서, DT는 지연 시간, LT는 서버 부하량, LC는 서버 부하 측정 항목 수, LW는 서버 부하 항목에 대한 가중치, MT는 최대 응답 시간을 의미한다.
한편, 본 발명의 일 실시예에 따른 로드 밸런싱 방법은, (a) 클라이언트가 복수 개의 서버로 연결 요청 신호를 전송하는 단계, (b) 상기 복수 개의 서버 각각이 상기 연결 요청 신호에 대응되는 응답신호를 상기 클라이언트로 전송하는 단계, (c) 상기 클라이언트는 상기 복수 개의 서버로부터 상기 응답신호를 수신하고, 상기 수신된 응답신호 중 최초로 수신된 응답신호를 전송한 서버와 연결하는 단계를 포함한다.
바람직하게는, 상기 (b) 단계는 상기 복수 개의 서버 각각이 자신의 부하 상태에 근거하여 지연 시간을 산출하고, 상기 산출된 지연 시간 이후에 상기 응답 신호를 상기 클라이언트로 전송할 수 있다.
보다 바람직하게는, 상기 복수 개의 서버 각각은 아래 수식을 이용하여 상기 지연 시간을 산출할 수 있다.
Figure 112006094450686-PAT00003
상기 수식에서, DT는 지연 시간, LT는 서버 부하량, LC는 서버 부하 측정 항목 수, LW는 서버 부하 항목에 대한 가중치, MT는 최대 응답 시간을 의미한다.
한편, 본 발명의 일 실시예에 따른 클라이언트의 로드 밸런싱 방법에 있어서, (a) 복수 개의 서버로 연결 요청 신호를 전송하는 단계, (b) 상기 복수 개의 서버로부터 상기 연결 요청 신호에 대응되는 응답 신호를 수신하는 단계, 및, (c) 상기 수신된 응답 신호 중 최초 수신된 응답 신호를 전송한 서버와 연결하는 단계를 포함한다.
한편, 본 발명의 일 실시예에 따른, 서버의 로드 밸런싱 방법은, (a) 클라이언트로부터 연결 요청 신호를 수신하는 단계, (b) 자신의 부하 상태에 근거하여 지연 시간을 산출하는 단계, 및, (c) 상기 연결 요청 신호에 대응되는 응답신호를 상기 산출된 지연 시간 이후에 상기 클라이언트로 전송하는 단계를 포함한다.
바람직하게는, 상기 (b) 단계는 아래 수식을 이용하여 상기 지연 시간을 산출할 수 있다.
Figure 112006094450686-PAT00004
상기 수식에서, DT는 지연 시간, LT는 서버 부하량, LC는 서버 부하 측정 항 목 수, LW는 서버 부하 항목에 대한 가중치, MT는 최대 응답 시간을 의미한다.
이하에서, 첨부된 도면을 참조하여 본 발명에 대하여 자세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 로드 밸런싱 시스템의 구성을 나타내는 블록도이다.
도 2를 참조하면, 본 로드 밸런싱 시스템(200)은 클라이언트(210), 및 복수 개의 서버(220-1,220-2,220-3,...,220-N)를 포함한다. 이러한, 클라이언트(210)는 노트북, 개인용 컴퓨터, PDA등으로 구현될 수 있다.
클라이언트(210)는 복수 개의 서버(220-1,220-2,220-3,...,220-N)로 연결 요청 신호를 전송할 수 있다. 이때, 클라이언트(210)는 복수 개의 서버(220-1,220-2,220-3,...,220-N)에 대한 IP 주소, 즉, 서버 리스트를 저장부(미도시)에 저장할 수 있다. 따라서, 클라이언트(210)는 서버 리스트를 이용하여 복수 개의 서버(220-1,220-2,220-3,...,220-N) 각각으로 연결 요청 신호를 전송할 수 있다.
또한, 클라이언트(210)는 복수 개의 서버(220-1,220-2,220-3,...,220-N) 중 서버 1(220-1), 서버 2(220-2), 서버 3(220-3)으로부터 연결 요청 신호에 대응되는 응답 신호가 수신되면, 최초로 수신된 응답 신호를 전송한 서버 1(220-1)과 연결한다.
즉, 클라이언트(210)는 복수 개의 서버(220-1,220-2,220-3,...,220-N) 중 서버의 부하 정도가 가장 적은 서버의 응답 신호를 가장 먼저 수신하게 되므로, 이에 최초로 수신된 응답 신호를 전송한 서버 1(220-1)과 연결하는 것이다.
복수 개의 서버(220-1,220-2,220-3,...,220-N)는 네트워크 트래픽을 처리한 다. 즉, 복수 개의 서버(220-1,220-2,220-3,...,220-N) 각각은 자신의 부하 상태에 근거하여 지연 시간을 산출하고, 산출된 지연 시간 이후에 응답 신호를 클라이언트(210)로 전송할 수 있다.
결과적으로, 응답 신호의 전송 시간은 각 서버(220-1,220-2,220-3,...,220-N)의 로드 상태에 따라 달라지게 되므로, 네트워크 상태가 동일하다고 가정하면, 클라이언트(210) 측에서는 로드가 가장 작은 서버에서 전송한 응답 신호를 가장 먼저 수신하게 된다.
이에 의해, 서버의 부하 상태를 실시간적으로 반영하여 효율적인 트래픽 또는 로드의 분산을 제공할 수 있다.
도 3은 본 발명의 일 실시예에 따른 클라이언트의 구성을 나타내는 블록도이다.
도 3을 참조하면, 본 클라이언트(210)는 제1 네트워크 인터페이스부(310), 및 제1 제어부(320)를 포함한다.
제1 네트워크 인터페이스부(310)는 제1 제어부(320)의 제어하에 복수 개의 서버(220-1,220-2,220-3,...,220-N)와 신호를 송수신한다. 즉, 제1 네트워크 인터페이스부(310)는 복수 개의 서버(220-1,220-2,220-3,...,220-N)로 연결 요청 신호를 송신하고, 그 중 적어도 일부 서버로부터 응답 신호를 수신할 수 있다.
제1 제어부(320)는 클라이언트(210)의 전반적인 동작을 제어한다. 또한, 제1 제어부(320)는 복수 개의 서버(220-1,220-2,220-3,...,220-N)로 연결 요청 신호를 전송하도록 제1 네트워크 인터페이스부(310)를 제어할 수 있다.
제1 제어부(320)는 제1 네트워크 인터페이스부(310)를 통해 복수 개의 서버(220-1,220-2,220-3,...,220-N) 중 적어도 하나의 서버로부터 연결 요청 신호에 대응하는 응답 신호가 수신되면, 최초 수신된 응답 신호를 전송한 서버와 연결할 수 있다.
이 경우, 각 서버의 응답 신호는 각각의 응답 지연 시간이 경과한 후에 제1 네트워크 인터페이스부(310)에 수신된다. 여기서, 응답 지연 시간은 서버의 성능을 고려한 DRTT(Delay Round Trip Time)로, 수학식 1에 의해 산출될 수 있다.
DRTT = RTT + DT
수학식 1에서 DRTT는 응답 지연 시간, RTT(ROUND TRIP TIME)은 왕복 시간, DT는 서버의 지연 시간을 의미한다.
즉, 응답 지연 시간은 연결 요청 신호의 송신 소요 시간 및 응답 신호의 수신 소요 시간을 나타내는 RTT(왕복 시간)과 서버의 DT(지연 시간)이 고려된 시간으로, 이 응답 지연 시간이 경과된 후, 응답 신호를 수신할 수 있는 것이다.
이에 따라, 제1 제어부(320)는 복수 개의 서버(220-1,220-2,220-3,...,220-N) 중 서버의 부하 정도가 가장 적은 서버의 응답 신호를 가장 빨리 수신할 수 있다.
또한, 제1 제어부(320)는 최초로 수신된 응답 신호를 전송한 서버와 연결한 뒤, 그 이후에 수신된 응답 신호에 대해서는 무시할 수 있다.
도 4는 본 발명의 일 실시예에 따른 서버의 구성을 나타내는 블록도이다.
도 4를 참조하면, 본 서버(220)는 제2 네트워크 인터페이스부(410), 산출부(420), 및, 제2 제어부(430)를 포함한다.
제2 네트워크 인터페이스부(410)는 제2 제어부(430)의 제어하에 클라이언트와 신호를 송수신한다. 즉, 제2 네트워크 인터페이스부(310)는 클라이언트로부터 연결 요청 신호를 수신하고, 클라이언트로 응답 신호를 송신할 수 있다.
산출부(420)는 부하 상태에 근거하여 지연 시간을 산출할 수 있다. 여기서, 부하 상태는 서버의 CPU(미도시)의 사용량 및 메모리(미도시)의 사용량을 고려한 상태를 의미한다.
또한, 산출부(420)은 수학식 2를 통해 지연 시간을 산출할 수 있다.
Figure 112006094450686-PAT00005
수학식 2에서, DT는 지연 시간, LTi는 항목별 서버 부하량, LC는 서버 부하 측정 항목 수, LW는 항목별 서버 가중치, MT는 최대 응답 시간을 의미한다. 여기서, 서버 부하량 항목은 CPU 사용량 및 메모리 사용량일 수 있다.
구체적으로, 서버 부하량 항목으로 CPU 사용량 및 메모리 사용량이 측정된 경우, LT1은 CPU 사용량, LT2는 메모리 사용량이 될 수 있다.
이에, 지연 시간을 산출하는 방법을 예를 들어 설명한다.
서버(220)의 CPU 사용량이 50%, 메모리 사용량이 25%, 항목별 서버 가중치가 1, 서버의 최대 응답 시간(서버 부하 민감도)이 3초라는 가정하에, 지연 시간은 ((0.5*1+0.25*1)/2)*3=1.125이다. 즉, 서버(220)의 지연 시간은 1.125초가 된다.
즉, 서버(220)의 지연 시간은 LT(서버 부하량)과 서버 부하 민감도를 나타내는 MT(최대 응답 시간)에 따라 결정될 수 있다. 여기서, 서버 부하 민감도를 나타내는 MT(최대 응답 시간)는 서버의 성능에 따라 달라질 수 있는 시간으로, 최소 3초에서 최대 10초의 응답 시간을 가질 수 있다. 한편, MT(최대 응답 시간)는 설계 목적에 따라 임의의 값으로 적용가능하다.
제2 제어부(430)는 서버(220)의 전반적인 동작을 제어할 수 있다. 또한, 제2 제어부(430)는 제2 네트워크 인터페이스부(410)를 통해 연결 요청 신호가 수신되면, 산출부(420)에 의해 산출된 지연 시간 이후에 연결 요청 신호에 대응되는 응답신호를 클라이언트로 전송할 수 있다.
즉, 제2 제어부(430)는 부하 상태 및 최대 응답 시간에 따라 결정된 지연 시간이 경과한 후, 연결 요청 신호에 대응되는 응답 신호를 클라이언트로 전송한다.
이에 따라, 복수 개의 서버 각각의 부하 상태를 고려하여 응답 신호가 전송되어, 부하 정도가 가장 적은 서버의 응답 신호가 클라이언트로 가장 먼저 전송되게 된다. 즉, 동적으로 변하는 서버의 부하 상태가 실시간적으로 반영되어 로드 밸런싱할 수 있다.
도 5 내지 도 7은 본 발명의 일 실시예에 따른 로드 밸런싱 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시에에 따른 클라이언트의 로드 밸런싱 방법을 설명 하기 위한 흐름도를 나타낸다. 도 5에 따르면, 클라이언트는 서버 리스트를 참조하여 복수 개의 서버로 연결 요청 신호를 전송한다(S510).
이에, 복수 개의 서버로부터 응답 신호가 수신되면(S520), 수신된 응답 신호 중 최초로 수신된 응답 신호를 전송한 서버와 연결한다(S530).
여기서, 응답 신호는 응답 지연 시간이 경과한 후에 수신된다. 즉, 응답 지연 시간은 서버의 성능을 고려한 DRTT(왕복 시간)로, 수학식 1에 의해 산출될 수 있다.
이에 의해, 서버의 성능뿐만 아니라 네트워크 상태도 함께 고려되어 로드 밸런싱할 수 있다.
도 6은 본 발명의 일 실시예에 따른 서버의 로드 밸런싱 방법을 설명하기 위한 흐름도를 나타낸다. 도 6에 따르면, 서버는 클라이언트로부터 연결 요청 신호가 수신되면(S610), 자신의 부하 상태에 근거하여 지연 시간을 산출한다(S620).
여기서, 지연 시간은 수학식 2를 통해 산출된다.
즉, 서버의 지연 시간은 LT(서버 부하량)과 서버 부하 민감도를 나타내는 MT(최대 응답 시간)에 따라 결정될 수 있다. 여기서, 서버 부하 민감도를 나타내는 MT(최대 응답 시간)는 서버의 성능에 따라 달라질 수 있는 시간으로, 최소 3초에서 최대 10초의 응답 시간을 가질 수 있다. 한편, MT(최대 응답 시간)는 설계 목적에 따라 임의의 값으로 적용가능하다.
서버는 산출된 지연 시간이 경과한 후, 연결 요청 신호에 대응되는 응답 신호를 클라이언트로 전송한다(S630).
이에 의해, 동적으로 변하는 서버의 부하 상태가 실시간적으로 반영되어 로드 밸런싱할 수 있다.
도 7은 본 발명의 일 실시예에 따른 로드 밸런싱 방법을 설명하기 위한 흐름도를 나타낸다.
도 7에 따르면, 클라이언트가 복수 개의 서버로 연결 요청 신호를 전송한다(S710). 이에, 서버는 연결 요청 신호가 수신되면, 지연 시간을 산출한다(S720). 여기서, 지연 시간은 수학식 2를 통해 산출될 수 있다.
그리고, 산출된 지연 시간 이후에 클라이언트로 연결 요청 신호에 대응하는 응답 신호를 전송한다(S730).
클라이언트는 복수 개의 서버로부터 응답 신호를 수신한다. 여기서, 응답 신호는 클라이언트 측면에서 볼 때, 응답 지연 시간 이후에 수신되는 것으로 볼 수 있다.
즉, 응답 지연 시간은 연결 요청 신호의 송신 소요 시간 및 응답 신호의 수신 소요 시간을 나타내는 RTT(왕복 시간)과 서버의 DT(지연 시간)이 고려된 시간으로, 이 응답 지연 시간이 경과된 후, 응답 신호를 수신할 수 있는 것이다.
이에 클라이언트는 수신된 응답 신호가 최초인지를 판단한다(S740).
수신된 응답 신호가 최초인 경우(S740:Y), 수신된 응답 신호를 전송한 서버와 연결한다(S750).
만약, 수신된 응답 신호가 최초가 아닌 경우(S740:N), 수신된 응답 신호를 무시한다.
이에 따라, 로드 밸런서를 이용하지 않고, 로드의 부하를 방지하고 복수 개의 서버를 분산적으로 이용할 수 있다.
또한, 복수 개의 서버 중 적어도 하나의 서버가 응답이 없다 하더라도 응답이 없는 서버에 연결을 시도하지 않으므로, 이에 즉각적으로 대응할 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면, 트래픽 로드를 효율적으로 분산 시킬 수 있다.
또한, 로드 밸런서를 이용하지 않고, 로드의 부하를 방지하고 복수 개의 서버를 분산적으로 이용할 수 있다. 그리고, 복수 개의 서버 중 적어도 하나의 서버가 응답이 없다 하더라도 응답이 없는 서버에 연결을 시도하지 않으므로, 이에 즉각적으로 대응할 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (12)

  1. 로드 밸런싱 시스템에 있어서,
    네트워크 트래픽을 처리하는 복수 개의 서버; 및,
    상기 복수 개의 서버로 연결 요청 신호를 전송하며, 상기 복수 개의 서버 중 적어도 하나의 서버로부터 연결 요청 신호에 대응되는 응답 신호가 수신되면, 최초로 수신된 응답 신호를 전송한 서버와 연결하는 클라이언트;를 포함하는 것을 특징으로 하는 로드 밸런싱 시스템.
  2. 제1항에 있어서,
    상기 복수 개의 서버 각각은,
    자신의 부하 상태에 근거하여 지연 시간을 산출하고, 상기 산출된 지연 시간 이후에 상기 응답 신호를 상기 클라이언트로 전송하는 것을 특징으로 하는 로드 밸런싱 시스템.
  3. 제2항에 있어서,
    상기 복수 개의 서버 각각은, 아래 수식을 이용하여 상기 지연 시간을 산출하는 것을 특징으로 하는 로드 밸런싱 시스템:
    Figure 112006094450686-PAT00006
    상기 수식에서, DT는 지연 시간, LT는 서버 부하량, LC는 서버 부하 측정 항목 수, LW는 서버 부하 항목에 대한 가중치, MT는 최대 응답 시간.
  4. 복수 개의 서버와 신호를 송수신하는 네트워크 인터페이스부; 및,
    상기 복수 개의 서버로 연결 요청 신호를 전송하며, 상기 연결 요청 신호에 대응되는 응답 신호가 수신되면, 최초 수신된 응답 신호를 전송한 서버와 연결하는 제어부;를 포함하는 것을 특징으로 하는 클라이언트.
  5. 클라이언트와 신호를 송수신하는 네트워크 인터페이스부;
    부하 상태에 근거하여 지연 시간을 산출하는 산출부; 및,
    상기 클라이언트로부터 연결 요청 신호가 수신되면, 상기 연결 요청 신호에 대응되는 응답신호를 상기 산출된 지연 시간 이후에 상기 클라이언트로 전송하는 제어부;를 포함하는 것을 특징으로 하는 서버.
  6. 제5항에 있어서,
    상기 산출부는,
    아래 수식을 이용하여 상기 지연 시간을 산출하는 것을 특징으로 하는 서버:
    Figure 112006094450686-PAT00007
    상기 수식에서, DT는 지연 시간, LT는 서버 부하량, LC는 서버 부하 측정 항목 수, LW는 서버 부하 항목에 대한 가중치, MT는 최대 응답 시간.
  7. (a) 클라이언트가 복수 개의 서버로 연결 요청 신호를 전송하는 단계;
    (b) 상기 복수 개의 서버 각각이 상기 연결 요청 신호에 대응되는 응답신호를 상기 클라이언트로 전송하는 단계;
    (c) 상기 클라이언트는 상기 복수 개의 서버로부터 상기 응답신호를 수신하고, 상기 수신된 응답신호 중 최초로 수신된 응답신호를 전송한 서버와 연결하는 단계;를 포함하는 것을 특징으로 하는 로드 밸런싱 방법.
  8. 제7항에 있어서,
    상기 (b) 단계는,
    상기 복수 개의 서버 각각이 자신의 부하 상태에 근거하여 지연 시간을 산출하고, 상기 산출된 지연 시간 이후에 상기 응답 신호를 상기 클라이언트로 전송하는 것을 특징으로 하는 로드 밸런싱 방법.
  9. 제8항에 있어서,
    상기 복수 개의 서버 각각은,
    아래 수식을 이용하여 상기 지연 시간을 산출하는 것을 특징으로 하는 로드 밸런싱 방법:
    Figure 112006094450686-PAT00008
    상기 수식에서, DT는 지연 시간, LT는 서버 부하량, LC는 서버 부하 측정 항목 수, LW는 서버 부하 항목에 대한 가중치, MT는 최대 응답 시간.
  10. 클라이언트의 로드 밸런싱 방법에 있어서,
    (a) 복수 개의 서버로 연결 요청 신호를 전송하는 단계;
    (b) 상기 복수 개의 서버로부터 상기 연결 요청 신호에 대응되는 응답 신호를 수신하는 단계; 및
    (c) 상기 수신된 응답 신호 중 최초 수신된 응답 신호를 전송한 서버와 연결하는 단계;를 포함하는 것을 특징으로 하는 로드 밸런싱 방법.
  11. 서버의 로드 밸런싱 방법에 있어서,
    (a) 클라이언트로부터 연결 요청 신호를 수신하는 단계;
    (b) 자신의 부하 상태에 근거하여 지연 시간을 산출하는 단계; 및,
    (c) 상기 연결 요청 신호에 대응되는 응답신호를 상기 산출된 지연 시간 이후에 상기 클라이언트로 전송하는 단계;를 포함하는 것을 특징으로 하는 로드 밸런싱 방법.
  12. 제11항에 있어서,
    상기 (b) 단계는,
    아래 수식을 이용하여 상기 지연 시간을 산출하는 것을 특징으로 하는 로드 밸런싱 방법:
    Figure 112006094450686-PAT00009
    상기 수식에서, DT는 지연 시간, LT는 서버 부하량, LC는 서버 부하 측정 항목 수, LW는 서버 부하 항목에 대한 가중치, MT는 최대 응답 시간.
KR1020060130831A 2006-12-20 2006-12-20 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법 KR20080057483A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060130831A KR20080057483A (ko) 2006-12-20 2006-12-20 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법
US11/751,129 US20080155552A1 (en) 2006-12-20 2007-05-21 Server, client, load balancing system and load balancing method thereof
CNA200710141801XA CN101207635A (zh) 2006-12-20 2007-08-10 服务器、客户机、负载平衡***及其负载平衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060130831A KR20080057483A (ko) 2006-12-20 2006-12-20 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법

Publications (1)

Publication Number Publication Date
KR20080057483A true KR20080057483A (ko) 2008-06-25

Family

ID=39544830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060130831A KR20080057483A (ko) 2006-12-20 2006-12-20 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법

Country Status (3)

Country Link
US (1) US20080155552A1 (ko)
KR (1) KR20080057483A (ko)
CN (1) CN101207635A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101156597B1 (ko) * 2009-12-17 2012-06-20 한국과학기술원 부하 균등화 장치 및 이를 이용한 부하 조정 방법
KR101421848B1 (ko) * 2009-09-30 2014-07-24 알까뗄 루슨트 엔터프라이즈 네트워크에서 할당된 클라우드 자원의 동적 로드 밸런싱 및 스케일링
CN110235105A (zh) * 2017-02-03 2019-09-13 微软技术许可有限责任公司 用于在受信任客户端组件中的服务器处理之后的客户端侧节流的***和方法

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2357623A1 (en) 2003-04-25 2011-08-17 Apple Inc. Graphical user interface for browsing, searching and presenting media items
US20040215534A1 (en) 2003-04-25 2004-10-28 Apple Computer, Inc. Method and system for network-based allowance control
US7844548B2 (en) * 2003-10-15 2010-11-30 Apple Inc. Techniques and systems for electronic submission of media for network-based distribution
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
US7827162B2 (en) * 2006-05-15 2010-11-02 Apple Inc. Media package format for submission to a media distribution system
US7962634B2 (en) * 2006-05-15 2011-06-14 Apple Inc. Submission of metadata content and media content to a media distribution system
US8015237B2 (en) 2006-05-15 2011-09-06 Apple Inc. Processing of metadata content and media content received by a media distribution system
EP2066101B1 (en) * 2007-11-28 2012-10-17 Alcatel Lucent System and method for an improved high availability component implementation
US20090259502A1 (en) * 2008-04-10 2009-10-15 Daniel David Erlewine Quality-Based Media Management for Network-Based Media Distribution
US9076176B2 (en) 2008-05-05 2015-07-07 Apple Inc. Electronic submission of application programs for network-based distribution
US10255580B2 (en) * 2008-05-05 2019-04-09 Apple Inc. Network-based distribution of application products
US9342287B2 (en) 2008-05-05 2016-05-17 Apple Inc. Software program ratings
US20090307683A1 (en) * 2008-06-08 2009-12-10 Sam Gharabally Network-Based Update of Application Programs
US9270783B2 (en) * 2008-12-06 2016-02-23 International Business Machines Corporation System and method for photorealistic imaging workload distribution
US20100235254A1 (en) * 2009-03-16 2010-09-16 Payam Mirrashidi Application Products with In-Application Subsequent Feature Access Using Network-Based Distribution System
US20100235889A1 (en) * 2009-03-16 2010-09-16 Michael Kuohao Chu Application products with in-application subsequent feature access using network-based distribution system
US9729609B2 (en) * 2009-08-07 2017-08-08 Apple Inc. Automatic transport discovery for media submission
US8935217B2 (en) * 2009-09-08 2015-01-13 Apple Inc. Digital asset validation prior to submission for network-based distribution
US20110153828A1 (en) * 2009-12-17 2011-06-23 Korea Advanced Institute Of Science And Technology Load balancing apparatus and method for regulating load using the same
EP2395710B1 (en) * 2010-06-08 2013-11-06 Alcatel Lucent Device and method for data load balancing
CN101958805B (zh) * 2010-09-26 2014-12-10 中兴通讯股份有限公司 一种云计算中终端接入和管理的方法及***
CN102469110A (zh) * 2010-11-01 2012-05-23 英业达股份有限公司 应用于一集群***的负载均衡方法
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US8898271B2 (en) * 2011-09-29 2014-11-25 Oracle International Corporation System and method for supporting accurate load balancing in a transactional middleware machine environment
CN103096146B (zh) * 2011-11-04 2016-08-10 华为软件技术有限公司 媒体内容发布方法和发布管理服务器
CN102629938B (zh) * 2012-03-14 2015-05-06 网宿科技股份有限公司 对网络视频加载进行视频加速的方法和***
US9203624B2 (en) 2012-06-04 2015-12-01 Apple Inc. Authentication and notification heuristics
US8990188B2 (en) 2012-11-30 2015-03-24 Apple Inc. Managed assessment of submitted digital content
US9087341B2 (en) 2013-01-11 2015-07-21 Apple Inc. Migration of feedback data to equivalent digital assets
CN103685056A (zh) * 2014-01-14 2014-03-26 互联网域名***北京市工程研究中心有限公司 负载均衡方法及其***
CN104660707B (zh) * 2015-03-09 2018-06-05 浙江万朋教育科技股份有限公司 一种基于地理位置的代理服务器均衡分配的方法
CN105100237A (zh) * 2015-07-15 2015-11-25 浪潮(北京)电子信息产业有限公司 一种调度控制方法及***
US10250517B2 (en) 2017-02-03 2019-04-02 Microsoft Technology Licensing, Llc Completion-side client throttling
CN108667938B (zh) * 2018-05-18 2020-12-29 阿里巴巴集团控股有限公司 切换流量的方法、装置及服务器
US11706301B2 (en) * 2018-08-28 2023-07-18 Petal Cloud Technology Co., Ltd. Server node selection method and terminal device
CN110149377A (zh) * 2019-04-30 2019-08-20 广州微算互联信息技术有限公司 一种视频服务节点资源分配方法、***、装置及存储介质
CN110460632B (zh) * 2019-06-26 2022-06-24 杨涛 一种订单优选的方法及***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872972A (en) * 1996-07-05 1999-02-16 Ncr Corporation Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited
US20040133631A1 (en) * 2003-01-06 2004-07-08 Hagen David A. Communication system
JP2006259812A (ja) * 2005-03-15 2006-09-28 Hitachi Ltd 動的キュー負荷分散方法、システム及びプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101421848B1 (ko) * 2009-09-30 2014-07-24 알까뗄 루슨트 엔터프라이즈 네트워크에서 할당된 클라우드 자원의 동적 로드 밸런싱 및 스케일링
KR101156597B1 (ko) * 2009-12-17 2012-06-20 한국과학기술원 부하 균등화 장치 및 이를 이용한 부하 조정 방법
CN110235105A (zh) * 2017-02-03 2019-09-13 微软技术许可有限责任公司 用于在受信任客户端组件中的服务器处理之后的客户端侧节流的***和方法
CN110235105B (zh) * 2017-02-03 2023-10-10 微软技术许可有限责任公司 用于在受信任客户端组件中的服务器处理之后的客户端侧节流的***和方法

Also Published As

Publication number Publication date
US20080155552A1 (en) 2008-06-26
CN101207635A (zh) 2008-06-25

Similar Documents

Publication Publication Date Title
KR20080057483A (ko) 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법
US11240146B2 (en) Service request routing
CN102187315B (zh) 在虚拟环境中获取用于服务器负载均衡的反馈信息的方法和装置
US8589558B2 (en) Method and system for efficient deployment of web applications in a multi-datacenter system
US20210218799A1 (en) Determining load state of remote systems using delay and packet loss rate
Tai et al. Ara: Adaptive resource allocation for cloud computing environments under bursty workloads
JP4058038B2 (ja) 負荷監視装置および負荷監視方法
US10979493B1 (en) System and method for forwarding service requests to an idle server from among a plurality of servers
CN103067297B (zh) 一种基于资源消耗预测的动态负载均衡方法及装置
CN101371238A (zh) 按需分布式计算***
KR102129456B1 (ko) 사물 인터넷 환경에서의 mqtt 프로토콜 기반 서버 시스템
CN101232511A (zh) 基于服务器功耗的网络通信分配
CN113018871A (zh) 业务处理方法、装置及存储介质
JP2011018167A (ja) 負荷分散プログラム、負荷分散装置及び負荷分散方法
CN111953551B (zh) 日志数据的传输方法、装置、电子设备及存储介质
US20190213052A1 (en) Distributed processing system, distributed processing method, and recording medium
EP2963770B1 (en) Transmitting device and transmitting method
KR101448413B1 (ko) Atca-기반 장비에서 통신 트래픽을 스케줄링하기 위한 방법 및 장치
CN108111567A (zh) 实现服务器负载均匀的方法及***
JP2011150472A (ja) ウェブサービスシステム、サーバ選択基準決定装置、サーバ選択基準決定方法およびプログラム
JP2009140212A (ja) 通信中継装置、サーバ、クライアント、ネットワークシステム、及び通信方法
CN102200928A (zh) 计算资源控制设备和计算资源控制方法
JP4722150B2 (ja) クライアントサーバシステム
KR20100038800A (ko) 캐시서버에 저장된 데이터 갱신방법, 그 캐시서버 및 컨텐츠 제공시스템
KR20100047652A (ko) 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법, 그 컨텐츠서버 및 컨텐츠 제공시스템

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid