TsgcWebSocketLoadBalancerServer 컴포넌트가 sgcWebSockets 2024.3.0 버전에서 개선되었어요. 이제 HTTP 프로토콜을 지원해요. 이전에는 WebSocket만 지원했어요. HTTP 요청을 세밀하게 조정하는 새로운 이벤트도 몇 가지 추가되었어요. 로드 밸런서 서버는 이제 TsgcWebSocketHTTPServer를 상속하므로 해당 컴포넌트의 모든 메서드와 속성을 물려받아요.
로드 서버 설정
로드 밸런서 서버는 TsgcWebSocketHTTPServer의 파생 클래스예요. 설정 방법을 알아보려면 TsgcWebSocketHTTPServer에 대한 문서를 읽어보세요.
또한 로드 밸런서에는 LoadBalancer 속성이 있으며 다음 속성들을 포함해요:
- LoadBalancing: 연결을 분배하는 방법을 여기서 설정해요
- lbRandom: (기본값) 새 클라이언트가 새 연결을 요청할 때마다 임의의 서버를 반환해요.
- lb연결: 새 클라이언트가 새 연결을 요청할 때마다 연결된 클라이언트가 더 적은 서버를 반환해요.
- Protocols: 활성화된 프로토콜을 설정해요
- WebSocket: true이면 WebSocket 연결이 로드 밸런서 서버에서 처리돼요.
- HTTP: true이면 HTTP 연결이 로드 밸런서 서버에서 처리돼요.
백업 서버 설정
백업 서버(로드 밸런서 뒤에 있는 서버들)는 TsgcWebSocketServer, TsgcWebSocketHTTPServer 또는 DataSnap 서버일 수 있어요.
해당 서버들에는 LoadBalancer 속성이 있으며, 여기서 로드 밸런서 서버와 백업 서버 간의 연결을 설정할 수 있어요.
- Enabled: 백업 서버로 사용하려면 true로 설정하세요.
- Host: 로드 밸런서가 있는 호스트예요.
- Port: 로드 밸런서의 수신 포트예요.
- Guid: 이 서버를 식별하는 고유 ID예요.
- Bindings: 연결이 전달될 접근 가능한 공개 주소예요. 예: 백업 WebSocket 서버가 포트 8000에서 수신하고 IP 주소가 1.1.1.1이면 다음을 사용해요: ws://1.1.1.1:8000;
- AutoRegisterBindings: 활성화하면 로드 밸런서 서버가 백업 서버의 Bindings 속성을 사용하여 공개 바인딩을 설정해요.
- AutoRestart: 초 단위로, 0보다 크면 백업 서버의 로드 밸런서 클라이언트가 내부 워치독을 활성화하여 x초마다 연결이 살아 있는지 확인해요. 닫혀 있으면 재연결을 시도해요.
샘플
아래에서 HTTP 요청을 3개의 서버에 무작위로 전달하는 로드 밸런싱 서버 구성을 보여주는 Windows용 컴파일된 데모 다운로드 링크를 확인할 수 있어요.
