2012-02-06 8 views
0

나는 설정에 임베디드 응용 프로그램 서버는

  • 오래된 Collabnet 서브
  • 을 다음

    • Sonatype 넥서스
    • 젠킨스를 포함하는 빌드 개발 환경이 필요 내 응용 프로그램은 GlassFish 응용 프로그램 서버에서 실행됩니다. 위의 세 가지 도구는 모두 임베디드 응용 프로그램 서버와 함께 제공됩니다. 나는 각각을 다운로드하여 사용해 보았습니다. 그러나 이제는 4 개의 응용 프로그램 서버가 실행 중임을 조심합니다.

      나는 또한 각각이 기존의 앱 서버에 놓을 수있는 war 파일 변형을 제공한다는 것을 알아 챘다. 나는 "Collabnet Subversion Edge"로는 전쟁 설치 옵션이 없기 때문에 아마도 다른 옵션은 없을 것이라고 생각합니다. 다른 두 파일은 war 파일로 다운로드 할 수 있습니다.

      Nexus와 Jenkins를 동일한 애플리케이션 서버에서 실행하는 데는 어떤 단점이 있습니다. 어떤 결점이 있습니까? 하나는 내가 조사하는 순간 그것을 구성하는 방법입니다. war 파일이 응용 프로그램 서버에 의해 분해/보관 취소 된 후에 만 ​​구성 할 수 있습니다.

      또한 공식적인 테스트에 사용되는 것처럼 이러한 전쟁 파일을 기존 Glassfish 인스턴스에 놓기를 꺼립니다. 아마도 Tomcat을 설치하고이 도구에 사용해야한다고 생각합니다. 임베디드 서버를 사용하거나 하나의 응용 프로그램 서버 만 사용하고 필요할 때 더 많은 메모리를 할당 할 것을 권합니다. 이러한 도구 중 하나라도 임베디드 서버로 더 잘 작동합니까? 아니면 별다른 차이가 있습니까?

      감사

    답변

    2

    Hudson/Jenkins와 Nexus는 Tomcat에서 war 파일로 실행할 수 있습니다. 또는 Glassfish를 사용할 수 있지만, 둘 다 번들로 제공되는 앱 서버를 사용하는 것이 가장 좋고 가장 좋은 옵션입니다.

    Nexus는 내부에서 Jetty를 사용합니다. Hudson 3 (Eclipse의 베타)도 마찬가지입니다. Old Hudson과 Jenkins는 모두 내부적으로 winstone을 사용합니다. 이 두 가지 모두 매우 가벼운 컨테이너이며 나란히 실행하는 오버 헤드는 무시할 수 있어야합니다.

    이러한 서버가 실제로 수행하는 작업 (빌드 실행, 이슈 처리 등)에 더 많은 영향을 미칩니다.

    그래서 설치, 업그레이드 및 런타임 지원을 쉽게하기 위해 내장 된 기본 응용 프로그램 서버를 사용하는 것이 좋습니다.

    1

    내가 젠킨스를 사용하지 않은,하지만 난 별도의 전쟁으로 실행하는 단일 바람둥이 인스턴스에서 넥서스와 허드슨 실행을 보았다. 넥서스의 경우, 전쟁 버전과 독립형 버전의 유일한 차이점은 독립 실행 형 버전이 부두를 포함하여 독립 실행 형 모드로 실행할 수 있다는 것입니다.하지만 이는 단지 래퍼입니다. 실행중인 실제 넥서스는 동일합니다.

    Jenkins도 마찬가지라고 생각합니다. 따라서 한 서버에서 4 개의 인스턴스를 실행할 수있는 경우 4 개의 서버를 실행할 이유가 없습니다. 그들은 모두 다른 웹 컨텍스트를 가지기 때문에 잘 작동해야합니다.

    3

    3 가지 도구 모두 단일 Glassfish (또는 유사한 응용 프로그램) 인스턴스를 공유 할 수 있습니다. 문제는 현명한 메모리 처리 매개 변수를 설정하는 책임을지게됩니다. 하나의 응용 프로그램에 따라, Java OutOfMemory 예외가 발생하는 경우 당신은 당신이 각을 발견 할 수있는 다양한 응용 프로그램의 실행 스크립트를 선택하면, 모든 응용 프로그램이 잠재적으로

    :-(영향은 Java 힙 및 permgen 설정을 다른 기본값을 설정합니다.

    Jenkins와 Nexus는 모두 가볍고 (Collabnet을 사용하지 않습니다.)

    관련 문제