웹사이트 검색

WildFly(JBoss 애플리케이션 서버) 기본 개념


지난 두 기사에서는 WildFly 설치와 CLI GUI 버전을 사용하여 서버 관리를 진행했습니다. 오늘은 기본 개념에 대해 논의하거나 WildFly에서 사용되는 용어를 말할 수 있습니다. 마지막으로 게시된 기사를 살펴보실 수 있습니다.

  1. WildFly – 새롭게 향상된 JBoss 애플리케이션 서버 설치
  2. CLI의 GUI 버전을 사용하여 WildFly(JBoss AS) 서버 관리

Jboss AS에 이미 익숙한 사람들은 Jboss AS 7.*WildFly에 도입된 큰 변화를 알고 있을 것입니다. 변경 사항은 모듈식 디자인으로, 모든 클래스를 로드하는 대신 애플리케이션에 필요한 클래스를 로드한다는 의미입니다.

다음은 WildFly에서 사용되는 기본 용어 중 일부입니다.

시작 모드

Wildfly는 새로운 시작 모드를 도입했습니다. 모든 서버 작업을 관리하는 데 사용되는 두 가지 작업 모드가 있습니다.

  1. 독립형 모드
  2. 도메인 모드

이 두 모드는 모두 WildFly 설치의 "bin" 디렉터리에 제공되는 두 개의 서로 다른 스크립트에 의해 처리됩니다.

[root@tecmint bin]# ll -m1 standalone.sh domain.sh

domain.sh
standalone.sh

독립형 모드

Jboss AS 7.* 이전 버전(예: Jboss Application Server 3, 4, 5<) 또는 6, 실행 중인 모든 jboss 인스턴스에는 개별 프로세스가 있습니다. 모든 인스턴스에는 자체 관리 콘솔과 이를 제어하기 위한 기타 기능이 있습니다.

매우 유사한 방식으로 독립형 모드가 작동합니다. "standalone.sh" 스크립트를 사용하고 요구 사항에 따라 다양한 매개변수를 전달하여 독립형 서버를 시작할 수 있습니다. 원하는 만큼 많은 인스턴스를 시작할 수 있습니다(모두 다른 포트에서 실행되도록 구성되어야 함).

이전 버전에서 했던 것처럼 4, 5 또는 6과 같이 다양한 HA 클러스터를 형성할 수도 있습니다.

독립 실행형 모드에서 WildFly 시작

$JBOSS_HOME/bin 디렉터리로 이동하고 아래와 같이 터미널에서 standalone.sh 스크립트를 실행합니다. 매개변수를 지정하지 않으면 기본적으로 루프백 주소에 바인딩되고 standalone.xml 파일을 사용합니다.

[root@tecmint bin]# ./standalone.sh
샘플 출력
tecmint-VGN-Z13GN bin # ./standalone.sh
=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: "/data/wildfly-8.0.0.Final"

  JAVA: java

  JAVA_OPTS:  -server -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

=========================================================================

13:25:22,168 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:25:22,717 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
13:25:22,818 INFO  [org.jboss.as] (MSC service thread 1-3) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
13:25:24,287 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
13:25:24,310 INFO  [org.xnio] (MSC service thread 1-1) XNIO version 3.2.0.Final
13:25:24,332 INFO  [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.2.0.Final
13:25:24,486 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 33) JBAS010280: Activating Infinispan subsystem.
13:25:24,491 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 28) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
13:25:24,514 INFO  [org.jboss.remoting] (MSC service thread 1-1) JBoss Remoting version 4.0.0.Final
13:25:24,573 INFO  [org.jboss.as.jsf] (ServerService Thread Pool -- 39) JBAS012615: Activated the following JSF Implementations: [main]
13:25:24,575 INFO  [org.jboss.as.connector.logging] (MSC service thread 1-3) JBAS010408: Starting JCA Subsystem (IronJacamar 1.1.3.Final)
13:25:24,587 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) JBAS010417: Started Driver service with driver-name = h2
13:25:24,622 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 41) JBAS011800: Activating Naming Subsystem
13:25:24,691 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 46) JBAS013171: Activating Security Subsystem
13:25:24,707 INFO  [org.jboss.as.naming] (MSC service thread 1-4) JBAS011802: Starting Naming Service
13:25:24,708 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-3) JBAS015400: Bound mail session [java:jboss/mail/Default]
13:25:24,737 INFO  [org.jboss.as.security] (MSC service thread 1-1) JBAS013170: Current PicketBox version=4.0.20.Final
13:25:24,754 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 50) JBAS015537: Activating WebServices Extension
13:25:24,800 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-4) JBAS017502: Undertow 1.0.0.Final starting
13:25:24,800 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 49) JBAS017502: Undertow 1.0.0.Final starting

참고: –b [IP] 옵션을 사용하여 다른 IP로 서버를 시작하고 다른 구성 파일 사용을 로드할 수 있습니다 -c [구성 파일 이름].

도메인 모드

이는 AS-7.*에 도입된 새로운 개념입니다. WildFly-8의 이 새로운 기능을 사용하면 단일 지점에서 다양한 인스턴스를 관리할 수 있습니다. 이는 여러 독립형 서버를 관리하는 대신 하나의 제어 지점으로 축소하는 데 정말 도움이 됩니다.

도메인이 관리하는 모든 서버를 도메인의 구성원이라고 합니다. 도메인의 모든 구성원은 동일한 구성/배포를 공유할 수 있습니다. 이는 클러스터링 환경에 정말 편리하고 도움이 됩니다.

도메인 모드에서는 서버 그룹을 생성한 다음 해당 그룹에 서버 수를 추가할 수 있습니다. 이 서버 그룹에서 수행하는 모든 작업을 통해 모든 것이 서버 그룹의 각 서버에 복제됩니다.

도메인 모드에서 WildFly 시작

$JBOSS_HOME/bin 디렉터리로 이동하고 아래와 같이 터미널에서 domain.sh 스크립트를 실행합니다.

[root@tecmint bin]# ./domain.sh
샘플 출력
=========================================================================

  JBoss Bootstrap Environment

 JBOSS_HOME: "/data/wildfly-8.0.0.Final"

  JAVA: java

  JAVA_OPTS: -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

=========================================================================

13:30:33,939 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:30:34,077 INFO  [org.jboss.as.process.Host Controller.status] (main) JBAS012017: Starting process 'Host Controller'
[Host Controller] 13:30:34,772 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
[Host Controller] 13:30:34,943 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
[Host Controller] 13:30:34,999 INFO  [org.jboss.as] (MSC service thread 1-4) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
[Host Controller] 13:30:35,689 INFO  [org.xnio] (MSC service thread 1-1) XNIO version 3.2.0.Final
[Host Controller] 13:30:35,692 INFO  [org.jboss.as] (Controller Boot Thread) JBAS010902: Creating http management service using network interface (management) port (9990) securePort (-1)
[Host Controller] 13:30:35,701 INFO  [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.2.0.Final
[Host Controller] 13:30:35,747 INFO  [org.jboss.remoting] (MSC service thread 1-1) JBoss Remoting version 4.0.0.Final
[Host Controller] 13:30:35,817 INFO  [org.jboss.as.remoting] (MSC service thread 1-2) JBAS017100: Listening on 127.0.0.1:9999
^C13:30:36,415 INFO  [org.jboss.as.process] (Shutdown thread) JBAS012016: Shutting down process controller
13:30:36,416 INFO  [org.jboss.as.process.Host Controller.status] (Shutdown thread) JBAS012018: Stopping process 'Host Controller'
[Host Controller] 13:30:36,456 INFO  [org.jboss.as] (MSC service thread 1-2) JBAS015950: WildFly 8.0.0.Final "WildFly" stopped in 19ms
[Host Controller] 
13:30:36,476 INFO  [org.jboss.as.process.Host Controller.status] (reaper for Host Controller) JBAS012010: Process 'Host Controller' finished with an exit status of 130
13:30:36,476 INFO  [org.jboss.as.process] (Shutdown thread) JBAS012015: All processes finished; exiting

또 다른 점은 독립 실행형(232183)과 도메인 모드(207)에서 시작된 서비스 수의 차이를 알 수 있다는 것입니다. 255 중).

독립형 모드와 도메인 모드 사이의 또 다른 가장 중요한 차이점은 시작 스크립트에 사용되는 시작 명령입니다. 독립형에서 진입점은 "org.jboss.as.standalone"인 반면 도메인 모드에서는 진입점은 "org.jboss.as.process-controller"입니다. 아래는 서로 다른 프로세스 간의 논리적 관계를 보여주는 그림입니다.

도메인 모드에서는 먼저 프로세스 컨트롤러를 시작하고 호스트 컨트롤러라는 새 프로세스를 생성합니다. 이 호스트 컨트롤러 프로세스는 서로 다른 서버 그룹 내의 여러 서버를 처리하는 역할을 합니다. 모든 서버에는 자체 JVM 프로세스가 있다는 점에 유의해야 할 또 다른 사항이 있습니다.

지금은 그게 전부입니다! 다음 기사에서는 WildFly에서 배포를 수행하는 다양한 방법을 보여 드리겠습니다. 그때까지 Tecmint에 계속 관심을 갖고 연결해 주시고 아래 댓글 섹션에 귀중한 피드백을 제공하는 것을 잊지 마세요.