2010-06-30 2 views
1

나는 다수의 Windows 서버를 보유하고 있습니다. 한 번에 오직 하나만 "활성"이고 다른 모든 것은 수동적이되도록 동일한 서버 서비스 (.NET으로 작성)의 복사본 하나를 각 서버에 실행하려고합니다. 활성 Windows 서비스가 종료 된 후 매우 짧은 시간이 지나면 나머지 수동 Windows 서비스 중 하나만 활성화됩니다..net 액티브 패시브 클러스터 알고리즘

간단한 방법으로 아이디어를 얻을 수 있습니까?

답변

2

글쎄, 당신이 그들을 동기화 유지해야 할 가장 쉬운 방법은 그들이 액세스 할 수있는 데이터베이스 어딘가에 항목을 가지고하는 것입니다. 활성 서비스를 몇 분마다 특정 행 등을 업데이트하십시오. 특정 시간 내에 업데이트가 발견되지 않으면 다른 서비스는 활성 상태 인 오프라인 상태로 전환 할 수 있습니다. 물론 여기서 문제는 데이터베이스가 오프라인 상태가되면 서비스에 문제가 발생하여 잠재적으로 단일 실패 지점이라는 것입니다. 하지만 DB를 클러스터링하여이 문제를 완화 할 수 있습니다.

당신은 그들 모두가 피어 투 피어 네트워크처럼 서로 의사 소통하게 할 수도 있지만, 근본적으로 같은 결과를 얻으려면 더 많은 노력이 필요합니다.

+0

클러스터 된 db 메소드는 현재 가지고있는 솔루션입니다. 그것은 내가 원했던 피어 투 피어 (peer to peer) 솔루션이지만 하나 이상의 활성을 유발할 수있는 타이밍 문제를 피할 수있는 방법을 생각하지 않았습니다. –

+0

간단한 방법은 서비스가 다른 간격으로 활성화되어 있는지 확인하는 것입니다. 일단 서비스가 실행중인 활성 서비스가 없다는 것을 알게되면 다른 모든 사람들과 통신하여 "이봐 요, 나 알아 들었어. 깨울 필요가 없어."라고 말하십시오. 다른 사람들은 잠자는 동안 그것들은 활동적인 사람이됩니다. – kemiller2002