2012-03-20 1 views
4

환경 :는 배포

  • 자바 EE 웹 애플리케이션
  • JDK 1.6, AS
  • : 웹 스피어 애플리케이션 서버 7,
  • OS : redhatzLinux

저는 웹 스피어 관리자가 아니며 아래 문제를 해결하는 방법이나 스크립트를 개발해야합니다 :

세 노드 NodeA NodeB 및 NodeC가있는 클러스터가 있습니다. 내 응용 프로그램은 이러한 클러스터에서 실행됩니다. 이 노드에 내 응용 프로그램을 배포하여 모든 노드를 한 번에 가져올 필요가 없도록하고 싶습니다. 요즘에는 배포가 이렇게 이루어집니다. 야간에 콘솔에서 모든 서버를 한꺼번에 중지 할 수 있습니다. 그런 다음 배포 관리자와 동일한 시스템에있는 주 노드에 애플리케이션을 설치 한 다음 동기화하여 모든 서버를 하나씩 백업합니다. 내가을하도록 요청하고 무엇

우리가 응용 프로그램을 업그레이드하거나 응용 프로그램을 다운 타임의 원인이되는 모든 항목을 아래로 가져하지 않음으로써 새 EAR 파일을 설치하는 것입니다. 이것을 달성 할 수있는 방법이 있습니까? WAS 7은 매우 성숙한 제품이며이를 수행 할 수있는 방법이 있어야합니다.

문서/튜토리얼에서 애플리케이션 (웹 스피어 엔터프라이즈 애플리케이션의 애플리케이션)을 선택하고 업데이트를 선택한 다음 "전체 애플리케이션 교체"라디오 버튼과 "로컬"라디오 버튼을 선택할 수있는 "업데이트" 파일 시스템 "을 선택하고 새 이어 파일을 가리 킵니다. 그러나이 경우 의사는 업데이트 할 때 모든 서버를 다운시킬 것이라고 말합니다. 이전과 동일합니다. 온라인 배포가 없습니다.

1) 우리는 아래로 가져 NODEA : 나는 어떤 도구를 사용하여 생각 때문에

은 내가이이 문제를 될 수있는 경우이

말해 해결해야 자바 프로그래머입니다 2) 노드 제거 단추를 누르거나 removeNode.sh를 사용하여 클러스터에서 NODEA를 제거합니다. 3) NODEA에 새 Ear를 설치하십시오 (동일한 관리 콘솔에서 또는 쉘 스크립트 또는 jython을 통해이를 수행 할 수 있습니까? 독립 실행 형 서버와 같을 수 있음) 3) 다시 시작합니다. 그런 다음 클러스터에 추가하십시오. NODE B와 NODEC에는 이전 응용 프로그램 버전이 있지만 NODEA에는 새로운 응용 프로그램이 있습니다.

그런 다음 우리는 다시 시작 이

지금 우리가 오래된

새로운 응용 프로그램과 NODEC 두 개의 노드가 클러스터에 다시 추가 NODEB에 applciation를 설치 NODEB에게 클러스터 에서 제거 NODEB을 가지고 우리는 NODEC에 대해 동일한 프로세스를 시도합니다.

이 기능이 작동합니까? 어느 누구도 이것을 시도 했습니까? 어떤 문제가 발생할 수 있다고 생각할 수 있습니다.

여기에서 의견을 보내 주시면 감사하겠습니다. 나는이 포럼에 숙련 된 사람들이 있다고 확신한다.필자는 이것이 드문 문제라고 생각하지 않습니다. 이는 어떤 조직이라도 고 가용성 요구 사항을 원할 것이라고 생각합니다.

사전에 도움을 주셔서 감사합니다. Syed ...

답변

2

가능한 복제본은 How can i do zero down time deployment on cluster environment?입니다. 기본적으로 그 질문에서 내 대답은 :

응용 프로그램을 업데이트 한 후 "Rollout Update"기능을 활용할 수 있습니다. 업데이트 후 노드를 저장하고 동기화하는 대신 다음 작업을 자동으로 수행하는이 기능을 사용하여 고 가용성을 유지하면서 변경 사항을 모든 배포 대상에 전파 할 수 있습니다 (클러스터 멤버가 다중 당신이 할 것처럼 들린다 노드) :

  1. 중지 : 클러스터의 각 노드 (한 번에 하나의 연속적인 가용성을 가능하게)에 대한

      마스터 구성에
    1. 저장 세션 변경
    2. 노드상의 클러스터 멤버
    3. Syn
+0

는 @shelly 덕분에 응답을, 어떤 사람도 같은 제안 그리고 난 그것을 시도했지만 내가 롤아웃 업데이트를 클릭 할 때, 롤아웃 업데이트 부분에서 실패 업데이트 "를 선택하고"마스터 리포지토리에 comiting "하고"master 리포지토리에 저장하지 못했습니다. "두 번 시도했지만 작동하지 않았습니다. 여기서 문제가 될 수 있습니다. – sarmahdi

+1

"롤아웃 업데이트"는 HA를 유지하면서 응용 프로그램을 업데이트하는 적절한 방법입니다. 당신이 그것을 시도했을 때 일어났던 특정한 문제에 관해서는, 나는 확실하지 않습니다. 로그에 내용이 있습니까? 아니면 추가 컨텍스트 또는 제공 할 수있는 정보가 있습니까? 별도의 질문을 통해 문제를 해결하는 데 도움이 될 수 있습니다. – shelley

0

또는 (자동으로 응용 프로그램을 시작하는) 응용 프로그램 서버를 시작

  • 노드
  • 을 chronize, 다음과 같은 절차를 수행 할 수 있습니다.

    1. 정지 노드 A를 제외한 모든 nodeagents는
    2. 을 주석 또는로드 밸런서 또는 플러그인에서 노드 A를 해제는
    3. 배포 응용 프로그램 (그래서 트래픽이 노드에 오지 않습니다).
    4. 변경 사항은 노드 에이전트가 가동됨에 따라 노드 A에서만 동기화됩니다.
    5. 플러그인 /로드 밸런서에서 노드 A의 주석을 해제하거나 활성화합니다.

    6. 플러그인 /로드 밸런서의 노드 B에서 노드의 트래픽 수신을 중단/비활성화 할 수 있습니다.

    7. 노드의 노드 에이전트를 시작하여 노드의 파일 변경 사항을 동기화합니다. 귀 응용 프로그램은 동기화 후에 중지되고 시작됩니다.
    8. 플러그인 /로드 밸런서에서 노드 B의 주석을 해제하거나 활성화합니다.

    나머지 모든 노드에 대해 6,7,8 단계를 반복하십시오. 이 롤아웃 시작 "고 말했다

    감사합니다, Laique 아메드