2013-05-21 2 views
1

잠재적으로 오랜 시간 동안 계속 실행해야하는 CPU 대기열 처리 작업이 있습니다. 작업이 실패 할 경우 고 가용성 클러스터 환경에서 작업을 실행하고 싶습니다. 첫 번째 시스템이 실패하면 작업을 다른 시스템으로 "전환"해야합니다. 시스템 장애시 원활한 장애 복구 기능을 통해 한 번에 클러스터의 정확히 한 시스템에서 작업이 실행되도록하는 가장 좋은 방법은 무엇입니까?장시간 실행되는 작업을 장애 조치 (failover)가있는 클러스터의 한 시스템에서만 실행하고 있습니까?

지금 당장이 기능을 구현하기 위해 JGroups을 사용할 계획입니다. 각 작업마다 하나의 채널을 유지하고 채널 리더 만 작업을 실행하고 다른 멤버는 작업을 계속 진행합니다. 그런 다음 채널 리더가 변경되면 마지막 채널 리더가 중단 된 지점에서 새 채널 리더가 선택됩니다.

누가이 문제를 해결하기 위해 JGroups를 사용 했습니까? 당신의 경험은 무엇입니까?

+1

JGroup과 경험에 대해 의견을 말할 수는 없지만 확실히 할 수 있습니다. (필자의) 요구 사항에 대해 우리는 간단한 UDP 기반 클러스터 프레임 워크를 작성했습니다. 지도자가 선거에서 죽으면 회원 선거 중 하나가 선거에 선출되면 선거를 선택하고 선거구를 선출하십시오. – Peeyush

+0

코멘트 주셔서 감사합니다! 그것은 훌륭한 정보입니다. – sigpwned

답변

1

JBoss 4.2.3 + Clustered Singleton에서 영감과 지침을 얻을 수 있습니다. 하나의 노드에서 실행되는 서비스를 정의하고 노드 클러스터에서 하나의 노드 만 정의합니다. 해당 노드가 실패하거나 클러스터에서 방출되면 새 노드에 단일 노드가 지정됩니다. JBoss Clustering의 기본 구현은 JGroups입니다.

+0

이것은 훌륭해 보입니다. 나는 모양을 가지고 그것이 효과가 있다면이 대답을 받아 들일 것입니다. – sigpwned