1. 개요

본 문서는 JBoss 운영모드에 대한 정리이다.

원문 : https://docs.jboss.org/author/display/AS7/Operating+modes

2. 내용

2-1. Standalone 서버

많은 경우에있어 Managed Domain을 통해 사용 가능한 중앙 집중식 관리 기능이 필요하지 않습니다. 이러한 사용 사례의 경우 JBoss Application Server 7 인스턴스를 "Standalone Server"로 실행할 수 있습니다. Standalone server 인스턴스는 JBoss Application Server 3, 4, 5 또는 6 인스턴스와 유사한 Standalone server입니다. 독립형 인스턴스는 standalone.sh 또는 standalone.bat 실행 스크립트 를 통해 시작할 수 있습니다.

둘 이상의 독립형 인스턴스가 시작되고 다중 서버 관리가 필요한 경우 서버에서 관리를 조정하는 것은 사용자의 책임입니다. 예를 들어 모든 독립형 서버에 응용 프로그램을 배포하려면 사용자는 각 서버에 응용 프로그램을 개별적으로 배포해야합니다.

JBoss Application Server 3, 4, 5 및 6과 마찬가지로 여러 개의 STandalone server 인스턴스를 실행하고 HA 클러스터를 구성 할 수 있습니다.

2-2. Managed Domain

JBoss Application Server 7의 새로운 주요 기능 중 하나는 단일 제어 지점에서 여러 JBoss Application Server 7 인스턴스를 관리 할 수 ​​있다는 것입니다. 이러한 서버의 모음을 중앙 관리 제어 지점 역할을하는 싱글 Domain Controller 프로세스와 함께 "Domain"의 구성원이라고합니다. 도메인의 모든 JBoss Application Server 7 인스턴스는 공통 관리 정책을 공유하며 도메인 컨트롤러는 각 서버가 해당 정책에 따라 구성되도록합니다. 도메인은 특정 호스트 컨트롤러 프로세스의 제어하에 지정된 호스트의 모든 JBoss Application Server 7 인스턴스를 사용하여 여러 물리적 (또는 가상) 머신으로 확장 할 수 있습니다. 하나의 호스트 컨트롤러 인스턴스가 중앙 도메인 컨트롤러로 작동하도록 구성됩니다.

호스트에서 ( domain.sh 또는 domain.bat 시작 스크립트 를 통해) JBoss Application Server 7 관리 도메인 을 시작하면 호스트 컨트롤러와 대개 적어도 하나의 JBoss Application Server 7 인스턴스를 시작하게됩니다. 호스트 중 하나에서 Host Controller는 Domain Controller로 작동하도록 구성되어야합니다. 자세한 내용은 도메인 설정 을 참조하십시오.

다음은 관리되는 도메인 토폴로지의 예입니다.

2-3. Host

위 다이어그램의 각 "Host"는 실제 또는 가상 호스트를 나타냅니다. 0 리적 호스트에는 0, 하나 이상의 서버 인스턴스가 포함될 수 있습니다.

2-4. Host Controller

domain.sh 또는 domain.bat 스크립트가 호스트에서 실행되면 호스트 컨트롤러라고하는 프로세스가 실행됩니다. 호스트 컨트롤러는 전적으로 서버 관리와 관련이 있습니다. 자체적으로 응용 프로그램 서버 작업 부하를 처리하지는 않습니다. 호스트 컨트롤러는 호스트에서 실행되는 개별 응용 프로그램 서버 프로세스의 시작 및 중지를 담당하며 도메인 컨트롤러와의 상호 작용을 통해이를 관리합니다.

각 호스트 컨트롤러는 기본적 으로 호스트의 파일 시스템에있는 압축 해제 된 JBoss Application Server 7 설치에 있는 domain / configuration / host.xml 파일 에서 해당 구성을 읽습니다 host.xml의 파일은 특정 호스트에 고유 한 구성 정보가 포함되어 있습니다. 주로 :

  • 이 설치에서 실행하기위한 실제 JBoss Application Server 인스턴스의 이름 목록.
  • 호스트 컨트롤러가 자체를 등록하고 도메인 구성에 액세스하기 위해 도메인 컨트롤러에 접속하는 방법 구성. 이것은 원격 도메인 컨트롤러를 찾고 연결하는 방법의 구성 일 수도 있고 호스트 컨트롤러가 도메인 컨트롤러로 작동하도록 지시하는 구성 일 수도 있습니다.
  • 로컬 물리적 설치와 관련된 항목 구성 예를 들어, domain.xml (아래 참조) 에서 선언 된 명명 된 인터페이스 정의는 host.xml 의 실제 컴퓨터 특정 IP 주소에 매핑 될 수 있습니다 domain.xml의 추상 경로 이름 은 host.xml의 실제 파일 시스템 경로에 매핑 될 수 있습니다 .

2-5. Domain Controller

하나의 호스트 컨트롤러 인스턴스는 전체 도메인 (예 : 도메인 컨트롤러)의 중앙 관리 지점으로 작동하도록 구성됩니다. 도메인 컨트롤러의 주요 책임은 도메인의 중앙 관리 정책을 유지하고 모든 호스트 컨트롤러가 현재 내용을인지하는지 확인하고 호스트 컨트롤러가이 정책에 따라 실행중인 응용 프로그램 서버 인스턴스를 구성하도록 지원하는 것입니다. 이 중앙 관리 정책은 기본적 으로 도메인 컨트롤러의 호스트 파일 시스템에 설치되지 않은 JBoss Application Server 7 의 domain / configuration / domain.xml 파일에 저장됩니다 .

domain.xml의의 파일이에 있어야 도메인 / 구성 도메인 컨트롤러를 실행하는 데 의미가있어 설치 디렉토리. 도메인 컨트롤러를 실행하지 않는 설치에는 필요하지 않습니다. 즉 호스트 컨트롤러가 원격 도메인 컨트롤러에 연결하도록 구성된 호스트입니다. 이러한 서버에 domain.xml 파일 이 있으면 아무런 해가 없습니다.

domain.xml의의 파일은, 무엇보다도 도메인에 제이보스 애플리케이션 서버 7 인스턴스가 실행되도록 구성 할 수있는 다양한 "프로파일"의 구성이 포함되어 있습니다. 프로필 구성에는 해당 프로필을 구성하는 다양한 하위 시스템의 세부 구성이 포함됩니다 (예 : 포함 된 JBoss 웹 인스턴스는 하위 시스템, JBoss TS 트랜잭션 관리자는 하위 시스템 등). 도메인 구성에는 서브 시스템이 열 수있는 소켓 그룹 정의도 포함됩니다. 도메인 구성에는 "서버 그룹"의 정의도 포함됩니다.

2-5. Server Group

서버 그룹은 관리되고 구성되는 서버 인스턴스 세트입니다. 관리되는 도메인에서 각 응용 프로그램 서버 인스턴스는 서버 그룹의 구성원입니다. 그룹에 단일 서버 만있는 경우에도 서버는 여전히 그룹의 구성원입니다. 도메인 컨트롤러와 호스트 컨트롤러는 서버 그룹의 모든 서버가 일관된 구성을 갖도록해야합니다. 모든 프로필은 동일한 프로필로 구성되어야하며 동일한 배포 콘텐츠가 배포되어 있어야합니다.

도메인에는 여러 서버 그룹이있을 수 있습니다. 위의 다이어그램에서는 두 개의 서버 그룹 "ServerGroupA"와 "ServerGroupB"를 보여줍니다. 다른 서버 그룹은 다른 프로파일 및 배치로 구성 될 수 있습니다. 예를 들어 서로 다른 서비스를 제공하는 서버 계층이 다른 도메인에서 다른 서버 그룹도 동일한 프로필을 실행하고 동일한 배포를 가질 수 있습니다. 예를 들어 하나의 서버 그룹에서 응용 프로그램을 먼저 업그레이드 한 다음 두 번째 서버 그룹을 업그레이드하면 완전한 서비스 중단을 피할 수있는 롤링 응용 프로그램 업그레이드 시나리오를 지원할 수 있습니다.

예제 서버 그룹 정의는 다음과 같습니다.

<server-group name="main-server-group" profile="default">
    <socket-binding-group ref="standard-sockets"/>
    <deployments>
        <deployment name="foo.war_v1" runtime-name="foo.war" />
        <deployment name="bar.ear" runtime-name="bar.ear" />
    </deployments>
</server-group>

서버 그룹 구성에는 다음과 같은 필수 속성이 포함됩니다.

  • name - 서버 그룹의 이름
  • profile - 그룹 내의 서버가 실행해야하는 프로파일의 이름

또한 다음과 같은 선택적 요소를 사용할 수 있습니다.

  • socket-binding-group - 그룹의 서버에서 사용할 기본 소켓 바인딩 그룹의 이름을 지정합니다. host.xml 에서 서버 단위로 재정의 될 수 있습니다 server-group 요소에 제공되지 않은 경우 host.xml의 각 서버에 제공되어야합니다 .
  • 배포 - 그룹의 서버에 배포해야하는 배포 콘텐츠
  • system-properties - 그룹의 모든 서버에 설정해야하는 시스템 등록 정보
  • jvm - 그룹의 모든 서버에 대한 기본 jvm 설정입니다. 호스트 컨트롤러는 이러한 설정을 host.xml 에 제공된 것과 병합 하여 서버의 JVM을 시작하는 데 사용할 설정을 가져옵니다. 자세한 내용은 JVM 설정 을 참조 하십시오.

2-6. Server

위 다이어그램에서 각 "서버"는 실제 응용 프로그램 서버 인스턴스를 나타냅니다. 서버는 호스트 컨트롤러와 별도의 JVM 프로세스에서 실행됩니다. 호스트 컨트롤러는 해당 프로세스를 시작합니다. 관리되는 도메인에서 최종 사용자는 명령 줄에서 직접 서버 프로세스를 시작할 수 없습니다.

호스트 컨트롤러는 domain.xml 의 구성 요소 와 host.xml 의 호스트 별 구성 을 결합하여 서버 구성을 종합합니다 .

Deciding between running standalone servers or a managed domain

어떤 유스 케이스가 관리 도메인에 적합하며 독립 실행 형 서버에 적합한가? 관리되는 도메인은 모두 조정 된 다중 서버 관리에 관한 것입니다. JBoss AS 7은 사용자가 여러 서버를 관리 할 수있는 중심점을 제공하며 이러한 서버의 구성을 일관되게 유지할 수있는 풍부한 기능과 구성 변경을 롤아웃하는 기능을 제공합니다. 배포)를 조정할 수 있습니다.

관리 도메인과 독립 실행 형 서버 사이의 선택은 최종 사용자 요청을 처리하는 기능이 아닌 서버 관리 방법에 관한 것임을 이해하는 것이 중요합니다. 이러한 구분은 고 가용성 클러스터의 경우 특히 중요합니다. HA 기능은 독립 실행 형 서버 또는 관리되는 도메인을 실행하는 것과 직각임을 이해하는 것이 중요합니다. 즉, 독립 실행 형 서버 그룹을 구성하여 HA 클러스터를 구성 할 수 있습니다. 도메인 및 독립형 모드는 서버가 제공하는 기능이 아닌 서버 관리 방법을 결정합니다.

그래서, 모든 주어진 :

  • 단일 서버 설치는 관리 도메인에서 실행되지 않으므로 독립 실행 형 서버를 실행하는 것이 더 좋습니다.
  • 다중 서버 프로덕션 환경의 경우, 관리 도메인을 실행하는 선택과 독립형 서버를 실행하는 선택은 관리 도메인에서 제공하는 중앙 집중식 관리 기능을 사용할지 여부에 달려 있습니다. 일부 기업은 자체적 인 정교한 다중 서버 관리 기능을 개발했으며 여러 독립적 인 JBoss AS 7 인스턴스에서 변경 사항을 조정할 수 있습니다. 이러한 기업의 경우 개별 독립형 서버로 구성된 다중 서버 아키텍처가 좋은 옵션입니다.
  • 독립형 서버를 실행하는 것이 대부분의 개발 시나리오에 더 적합합니다. 관리 도메인에서 구현할 수있는 개별 서버 구성은 독립 실행 형 서버에서도 수행 할 수 있으므로 개발중인 응용 프로그램이 결국 관리 도메인 설치에서 프로덕션 환경에서 실행 되더라도 대부분의 (대부분의 경우) 개발은 독립형 서버.
  • 관리 도메인 모드를 실행하면 일부 고급 개발 시나리오에서 유용 할 수 있습니다. 즉, 여러 JBoss AS 7 인스턴스 간의 상호 작용이 관련된 것들입니다. 개발자는 다양한 서버를 도메인의 구성원으로 설정하는 것이 다중 서버 클러스터를 시작하는 효율적인 방법이라는 것을 알 수 있습니다.