2012-10-03 2 views
1

현재 가로 배포에서는 ActivePivot 4.3을 사용하고 있습니다.가로 배포의 ActivePivot 클러스터 관리

Google은 기록을 일별로 분할했습니다. 로드가 빠르더라도 사용자가 부분로드 된 노드에 액세스 할 수 없도록하고 싶습니다.

로드하는 동안 노드를 클러스터 외부에두고 준비가되면 노드에 가입하고 싶습니다. 또한 유지 보수 중이면 클러스터에서 제거하는 것이 좋습니다. 이를 달성하기 위해서는 노드가 클러스터에 참여/탈퇴 할 수있는 방법에 대한 제어가 필요합니다.

저는 JMX를 사용하는 것이 좋다고 생각합니다. 그러나 이러한 컨트롤을 프로그래밍 방식으로, 이상적으로는 웹 서비스를 통해 액세스 할 수 있기를 바랍니다.

어떻게 구현할 수 있습니까?

답변

2

ActivePivot 4.3.3, 당신은 이런 식으로 그것을 달성 할 수

클러스터가 완전히로드되기 전에, 당신이 false로 "자동 시작"유통 속성을 설정할 수 있습니다 가입에서 노드를 방지하기 위해. 당신의 schema.xml 파일에서

이 시작되지 않습니다, 네트워크를 통해 통신을 담당하는 다음 코드 그리고

... 
    <distributionDescription> 
     <distributedPivotId> xxxx </distributedPivotId> 
     <clusterId> xxxx </clusterId> 
     <distributionType> xxxx </distributionType> 
     <properties> 
      <entry key="autoStart" value="false" /> 
     </properties> 
    </distributionDescription> 
... 

, 메신저 구성 요소를 추가합니다. 수동으로해야합니다.

이 구성 요소를 시작하려면 "start()"메서드를 호출해야합니다. 프로그래밍 방식으로 JMX 도구를 사용하지 않으려면 "ActivePivotManager"구성 요소를 사용해야합니다. ActivePivot의 여러 인스턴스를 가져 오는 방법을 제공합니다.이를 사용하여 원하는 분산 ActivePivot을 가져옵니다.

마지막으로 분산 ActivePivot의 "getMessenger()"메서드를 사용하여 메신저 구성 요소를 가져 와서 시작하십시오. 고려 된 노드가 클러스터에 참여합니다.

당신은 관리자가 가정, 코드는 다음과 같아야

ADistributedActivePivot myDistributedPivot = (ADistributedActivePivot) manager.getActivePivots().get("myDistributedPivot"); // Change it to the Id of your distributed pivot 
myDistributedPivot.getMessenger().start(); 

이 노드가/가입 클러스터를 떠나, 당신은 자유롭게 "일시 정지()"와 "이력서를 사용하려면() "그 메신저에서 나온 방법.

+0

관리자가 없다고 가정하면 어떻게받을 수 있습니까? –