2010-12-06 2 views
1

소프트웨어 배포와 관련하여 문제가 있습니다. 우리는 JBoss 4.2.3을 사용하고 있습니다.서버를 다시 시작하지 않고 JBoss 배포

제가 지금하고있어 일반적인 수동 배포 과정을 설명하겠습니다 : 서버에

  1. 복사 귀, 전쟁과 JAR 파일을.
  2. 서버를 중지하십시오.
  3. 배포 폴더에 EAR, WAR 및 JAR을 복사하십시오.
  4. 데이터베이스 업데이트 스크립트를 실행하십시오.
  5. 서버 시작.

나는 서버를 다시 시작할 수있는 방법을 찾고있었습니다. 그것은 많은 문제와 많은 불편을 야기했기 때문입니다. 예를 들어 서버 다운 시간을 예약하려면 이메일을 큰 목록으로 보내야했습니다.

다른 문제는 SOAP을 통해 원격으로 서로 통신하는 2 개의 서버가 있다는 것입니다. 한 서버가 다운되면 데이터 동기화 문제가 발생할 수 있습니다.

뜨거운 배포가 실제로 제대로 작동하지 않았습니다. 때로는 클래스 로더 예외가 있고 때때로 캐시 문제가 있습니다.

클러스터링을 고려하고 있었지만 작동 여부는 확실하지 않았습니다.

비슷한 경험을 가진 사람이 있습니까? 어떤 해결책이나 제안?

미리 감사드립니다.

p.s. stackoverflow 대신 serverfault에 게시해야합니까? (저는 개발자이기 때문에 여기 선호합니다 :)

+0

JBoss가 핫 배포를 할 수 있다고 생각했습니다. –

+0

@jpartogi : 클래스 로더 유출로 인해 프로덕션 설정에 적합하지는 않습니다. – skaffman

답변

3

핫 전개가 효과적이지 않고 재시작 옵션이 없다면, 내가 제안 할 수있는 유일한 다른 방법은 장애 조치로 클러스터링하는 것입니다. 두 개의 서버를 실행하십시오 하나가 아닌 SOAP 요청이 모두로드 밸런싱되어 있습니다. 업그레이드를 수행해야 할 경우 하나의 서버를 종료하고 업그레이드하고 시작한 다음 두 번째 서버를 종료하고 업그레이드 한 다음 다시 시작하십시오.

맞다면 (까다 롭지 만 할 수있는 일이지만) 다운 타임이 없습니다. 롤링 업그레이드 중에 서버가 공존 할 수 있는지 확인하고 데이터베이스 업그레이드가 이전 버전과 호환되는지 확인해야하지만 모두 업그레이드 할 수 있습니다.

+1

네, 까다로워 보입니다. 배포의 30 %가 발생하는 데이터베이스 호환성 문제 (예 : 열 변경 등)로 인해 다른 노드에서 ORM이 실패 할 수 있습니다 ... 흠 ... 그것에 대해 생각해 봐야합니다. 댓글. – yiqing

+0

이것은 JBoss와 끈끈한 세션에서 Tomcat과 함께 사용되었습니다. (잘 작동합니다!) 유일한 문제는 JBoss 도메인의 기능인 세션 페일 오버 및 실제로드 기반 균형 (라운드 로빈이 아닌)과 HornetQ 클러스터의 기능을 놓치게되는 것입니다. 어쩌면이 문제에 대한 질문을 던져야 할 것입니다 ... (JBoss 7.1.1) – gkephorus