최근에 필자가 쓴 소프트웨어에로드 균형 조정 기능을 추가했습니다. SQL 데이터베이스에서 입력을 기반으로 일부 데이터를 처리하는 네트워크 응용 프로그램입니다. 처리가 꽤 집중적 일 수 있기 때문에이 응용 프로그램의 여러 인스턴스를 여러 서버에서 실행하여로드를 분할 할 수있는 기능을 추가했지만 이제로드 균형 조정은 수동 작업입니다. 사용자는 입력 도메인의 어느 부분을 차지하는 인스턴스를 지정해야합니다.하트 비트 프로토콜/알고리즘 또는 모범 사례
다음 단계로 넘어가서 입력 데이터의 다이빙을 자동으로 협상하고 인스턴스 중 하나가 "사라지다"(충돌했거나 전원이 꺼져 있음) 것을 인식하면 인스턴스를 프로그래밍하여 나머지 인스턴스는 실패한 인스턴스의 작업 부하를 처리 할 수 있습니다.
이것을 구현하기 위해 인스턴스 사이에 간단한 하트 비트 프로토콜을 사용하여 누가 온라인 상태이고 누가 아닌지를 결정할 것입니다.이 작업은 대단히 복잡하지는 않지만 설치 하트 비트 네트워크가 있는지 알고 싶습니다. 프로토콜 (UDP, TCP 또는 둘 다 기반).
분명히 클러스터링, 페일 오버 및 고 가용성 기술로 네트워킹 세계에서 많은 일이 발생합니다. 결국 내가 알고 있어야하는 확립 된 프로토콜이나 알고리즘이 있는지 궁금합니다. of of 또는 구현.
편집
더 잘 하트 비트 프로토콜이 설치되지 않은 어느 쪽이든, 답변을 기반으로 보인다 또는 아무도 그들이 결국 잘 확립되지 것을 의미하는 것이다 (그들에 대해 알고) 그 경우 나는 단지 내 자신을 굴릴거야.
내가 찾던 답변 중 어느 것도 제공하지 않았지만 가장 가까운 번호 였기 때문에 Matt Davis's answer에 투표 할 예정이며 멀티 캐스트를 사용하는 것이 좋습니다.
당신의 시간 ~
WebLogic의 기본 하트 비트 메시지를 사용자 정의하여 현재 CPU 및/또는 네트워크로드와 같은 추가 정보를 추가 할 수 있는지 알고 있습니까? (더 많은 요청으로 어려움을 겪는 서버에 과부하가 걸리지 않도록 해당 정보를 사용하는로드 균형 조정 알고리즘을 허용) – XpiritO
파스칼에 대한 질문이 많습니다 (http://stackoverflow.com/questions/1442189/heartbeat-protocols-algorithms-or- 베스트 프랙티스/1442255 # 1442255). 저는 WebLogic에 익숙하지 않습니다. 제 경우에는 이미 UDP 기반의 맞춤 솔루션이었던 것을 사용하기 시작했습니다. –