Microsoft Azure에서 Red Hat JBoss Enterprise Application Platform 사용


Red Hat JBoss Enterprise Application Platform 8.0

고가용성 구성을 포함하여 Microsoft Azure에서 Red Hat JBoss Enterprise Application Platform을 사용하는 방법

Red Hat Customer Content Services

초록

이 문서는 고가용성 구성을 포함하여 Microsoft Azure에서 Red Hat JBoss Enterprise Application Platform을 사용하기 위한 가이드입니다.

1장. Microsoft Azure의 JBoss EAP 정보

JBoss EAP 8.0은 Azure에서 JBoss EAP를 실행하기 위해 지원되는 특정 구성 내에서 사용하는 한 Microsoft Azure 플랫폼과 함께 사용할 수 있습니다. 클러스터형 JBoss EAP 환경을 구성하는 경우 Azure에서 JBoss EAP 클러스터링 기능을 사용하는 데 필요한 특정 구성을 적용해야 합니다.

2장. Microsoft Azure의 JBoss EAP 서브스크립션 모델

Azure에 JBoss EAP를 배포하기 위해 두 가지 서브스크립션 모델을 선택할 수 있습니다. BYOOS(Bay-As-you-go) 및 BYOG(pay-as-you-go)를 가져옵니다.

다음 두 제품의 차이점은 다음과 같습니다.

BYOS
기존 Red Hat 서브스크립션이 있는 경우 BYOS 모델을 사용하여 Azure에 JBoss EAP를 배포하는 데 사용할 수 있습니다. 자세한 내용은 Red Hat Cloud Access 정보를 참조하십시오.
PAYG
기존 Red Hat 서브스크립션이 없는 경우 PAYG 모델을 사용하여 사용한 컴퓨팅 리소스 수에 따라 비용을 지불하도록 선택할 수 있습니다.

3장. Red Hat Cloud Access 정보

기존 Red Hat 서브스크립션이 있는 경우 Red Hat Cloud Access는 Amazon EC2 및 Microsoft Azure와 같은 Red Hat 인증 클라우드 인프라 공급자에서 JBoss EAP에 대한 지원을 제공합니다. Red Hat Cloud Access를 사용하면 기존 서버와 퍼블릭 클라우드 기반 리소스 간에 서브스크립션을 비용 효율적으로 이전할 수 있습니다.

Red Hat Cloud Access에 대한 자세한 내용은 고객 포털에서 확인할 수 있습니다.

4장. Microsoft Azure에서 JBoss EAP를 실행하기 위한 지원되는 구성

이 섹션에서는 Microsoft Azure에서 JBoss EAP를 실행하기 위해 지원되는 구성에 대해 설명합니다.

4.1. JBoss EAP 사용을 위해 지원되는 가상 머신 운영 체제

Microsoft Azure에서 JBoss EAP를 사용하는 데 지원되는 유일한 가상 머신 운영 체제는 다음과 같습니다.

  • Red Hat Enterprise Linux 8
  • Red Hat Enterprise Linux 9
  • Microsoft Windows Server 2019
  • Microsoft Windows Server 2022

Red Hat Cloud Access 프로그램을 사용하면 JBoss EAP 서브스크립션을 사용하여 자체 Azure 가상 머신 또는 Microsoft Azure Marketplace에서 위의 온 디맨드 운영 체제 중 하나에 JBoss EAP를 설치할 수 있습니다. 가상 머신 운영 체제 서브스크립션은 JBoss EAP 서브스크립션과 다릅니다.

위의 운영 체제 제한 이외의 지원되는 JDK(Java Development Kit) 벤더 및 버전과 같은 JBoss EAP에서 지원되는 구성에 대한 자세한 내용은 고객 포털을 참조하십시오.

4.2. JBoss EAP 클러스터링을 위한 Azure 자동 스케일링 기능

모든 JBoss EAP 클러스터링 사용 사례에서 수직 확장이 지원됩니다.

+ 다음 수평 확장 사용 사례도 지원됩니다.

  • 분산 HTTP 세션

    • hotrod-session-management를 통해
    • infinispan-session-management를 통해

      • invalidation-cache 및 공유 영구 캐시 저장소 사용
  • 분산 @Stateful Cryostats

    • infinispan-passivation-store를 통해

      • invalidation-cache 및 공유 영구 캐시 저장소 사용
  • 분산 migration 타이머

    • invalidation-cache 및 공유 영구 캐시 저장소 사용
  • JPA/Hibernate 두 번째 수준 캐시

    • Invalidation 또는 로컬 엔티티/collection/query 캐싱만
  • 공용 WildFly 클러스터링 API

5장. Microsoft Azure에서 JBoss EAP를 사용할 때 지원되지 않는 기능

Microsoft Azure에서 JBoss EAP를 사용할 때 지원되지 않는 몇 가지 기능이 있습니다.

Shared Store를 사용한 ActiveMQ Artemis High Availability
Artemis 공유 저장소를 사용한 JBoss EAP 메시징 고가용성은 Microsoft Azure에서 지원되지 않습니다. Azure에서 JBoss EAP 메시징 고가용성을 구성하려면 Microsoft Azure 섹션의 ActiveMQ Artemis 고가용성 구성의 지침을 참조하십시오.
mod_custer Advertising
JBoss EAP를 Cryostat mod_cluster 프록시 로드 밸런서로 사용하려는 경우 Azure UDP 멀티캐스트 제한으로 인해 mod_cluster 알림이 기능적으로 지원되지 않습니다. 자세한 내용은 Microsoft Azure의 mod_cluster를 사용한 로드 밸런싱 구성을 참조하십시오.
가상 머신 스케일링 세트

축소 프로세스 중에 모든 트랜잭션이 완료될 때까지 자동 축소 기능이 기다리지 않기 때문에 Microsoft Azure VMSS(Virtual Machine Scale Set)의 트랜잭션은 지원되지 않습니다. 이로 인해 데이터 무결성 문제가 발생할 수 있습니다. Microsoft Azure VMSS는 EAP VM을 제거하고 적절한 종료를 지원하지 않으므로 EAP 클러스터링에 대한 다음과 같은 제한 사항이 발생합니다.

  • HA의 서버 측 상태를 Red Hat Data Grid와 같은 타사 서비스에 외부화해야 하는 구성에 대해 VMSS를 지원해야 합니다. JBoss EAP는 VMSS 를 지원하지만 상태 저장 세션 빈에는 사용할 수 없습니다.
Azure App Service

JTS는 JBoss EAP Azure App Service 오퍼링에서 지원되지 않습니다.

참고

JTS는 지원되지 않지만 Jakarta 트랜잭션은 다음 조건에서 지원됩니다.

  • 인스턴스 자동 제거가 비활성화됩니다.
  • 예를 들어 Azure 대시보드를 사용하여 실행 중인 인스턴스 수를 줄이면 인스턴스가 수동으로 제거되지 않습니다.

또한 자카르타 Enterprise Cryostats-remoting을 통한 트랜잭션은 지원되지 않습니다.

JBoss EAP 클러스터링에 지원되지 않는 Azure 자동 스케일링

수평으로 스케일링할 때는 다음 JBoss EAP 클러스터링 사용 사례가 지원되지 않습니다.

  • 분산 HTTP 세션

    • Infinispan-session-management

      • 분산, 복제 또는 분산형 캐시 사용
  • 분산 @Stateful Cryostats

    • infinispan-passivation-store를 통해

      • 분산, 복제 또는 분산형 캐시 사용
  • 분산 migration 타이머

    • 분산, 복제 또는 분산형 캐시를 사용하는 경우
  • Singleton Cryostats
  • JPA/Hibernate Second-Level Cache

    • 분산, 복제 또는 분산된 엔티티/컬렉션/쿼리 캐싱
  • Singleton 배포
  • 싱글톤 MSC 서비스
  • 공용 WildFly 클러스터링 API:

6장. JBoss EAP 호스팅을 위한 Microsoft Azure 환경 생성

Microsoft Azure 환경에서 JBoss EAP 인스턴스를 호스팅할 가상 머신을 생성합니다. 가상 머신은 Azure 크기 Standard_A2 이상을 사용해야 합니다.

Azure 온 디맨드 프리미엄 이미지를 사용하여 가상 머신을 생성하거나 수동으로 가상 머신을 생성할 수 있습니다.

참고

JBoss EAP Azure 가상 머신 이미지를 이제 시장에서 사용할 수 있습니다.

중요

JBoss EAP 고가용성을 구성하는 경우 동일한 가상 네트워크 내에 가상 머신을 생성해야 합니다.

7장. Microsoft Azure에 서버 설치

중요

Microsoft Azure Marketplace에서 Red Hat Enterprise Linux 온 디맨드 가상 머신을 사용하는 경우 .zip 파일 또는 설치 프로그램 방법을 사용하여 JBoss EAP를 설치해야 합니다. Red Hat Enterprise Linux 온디맨드 가상 머신을 Red Hat 서브스크립션 관리에 등록해서는 안 됩니다. 해당 가상 머신의 경우 두 번 청구됩니다.

Microsoft Azure 환경의 가상 머신에 JBoss EAP를 설치하는 것은 일반적인 JBoss EAP 설치와 다르지 않습니다. 자세한 내용은 Red Hat JBoss Enterprise Application Platform 설치 방법을 참조하십시오.

8장. Microsoft Azure에서 작동하도록 JBoss EAP 하위 시스템 구성

일부 JBoss EAP 하위 시스템은 Amazon EC2 및 Microsoft Azure와 같은 클라우드 플랫폼에서 제대로 작동하도록 구성해야 합니다. 이는 일반적으로 JBoss EAP 서버가 클라우드 가상 시스템의 프라이빗 IP 주소(예: 클라우드 플랫폼 내에서만 표시되는 10.x.x.x )에 바인딩되므로 필요합니다. 특정 하위 시스템의 경우 이 주소를 클라우드 외부에서 볼 수 있는 서버의 공용 IP 주소에도 매핑해야 합니다.

8.1. Microsoft Azure에서 작동하도록 웹 서비스 하위 시스템 구성

클라이언트가 Service.create(wsdlURL, serviceName) 을 사용하여 웹 서비스 요청을 하는 경우, 사용자는 서버 공용 IP 주소에 연결하지만 나중에 웹 서비스 하위 시스템의 서버 구성 파일에 정의된 주소로 리디렉션됩니다.

기본적으로 이 주소는 ${jboss.bind.address:127.0.0.1} 입니다. 즉, 클라우드 플랫폼에서 호출자는 서버의 개인 IP 주소로 리디렉션되며 요청을 확인할 수 없습니다. 서버의 공용 IP 주소는 wsdl-host 요소에서 구성해야 합니다.

프로세스

  • wsdl-host 요소에서 서버의 공용 IP 주소를 구성합니다.

    /subsystem=webservices:write-attribute(name=wsdl-host,value=<PUBLIC_IP_ADDRESS>)
    Copy to Clipboard Toggle word wrap

8.2. Microsoft Azure에서 작동하도록 메시징 하위 시스템 구성

클라우드 플랫폼에서 메시징을 사용하는 경우 클라이언트에서 사용하는 연결 팩토리에 서버의 공용 IP 주소를 가리키는 커넥터가 있어야 합니다.

따라서 전체 프로필을 실행하는 JBoss EAP 서버에 대해 새 커넥터 및 소켓 바인딩을 생성해야 합니다.

사전 요구 사항

  • JBoss EAP에서 전체 프로필을 실행하고 있습니다.

프로세스

  1. socket-binding-group 내에 참조된 http-public 소켓 바인딩을 생성합니다.

    /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=http-public:add(host=<PUBLIC_IP_ADDRESS>,port=${jboss.http.port:8080})
    Copy to Clipboard Toggle word wrap
  2. 메시징 하위 시스템에서 새 http-connector 요소를 생성합니다.

    /subsystem=messaging-activemq/server=default/http-connector=http-public-connector:add(endpoint=http-acceptor,socket-binding=http-public)
    Copy to Clipboard Toggle word wrap
  3. 클라이언트에서 사용할 connection-factory 에서 커넥터 를 설정합니다. 예를 들어 기본 연결로 RemoteConnectionFactory 의 구성은 다음과 같습니다.

    /subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=connectors, value=["http-public-connector"]
    Copy to Clipboard Toggle word wrap

8.3. Microsoft Azure에서 작동하도록 원격 시스템 구성

클라우드 플랫폼에서 클러스터형 Jakarta Enterprise Cryostat와 함께 JBoss EAP HA 기능을 사용하는 경우 Jakarta Enterprise Cryostats 클라이언트가 클러스터 보기를 수신할 수 있도록 재배치 하위 시스템에 대한 몇 가지 추가 구성이 필요합니다.

프로세스

  • remoting 하위 시스템 소켓 바인딩에 대한 클라이언트 매핑 구성.

    /socket-binding-group=standard-sockets/socket-binding=http:write-attribute(name=client-mappings,value=[{ "destination-address" => "<PUBLIC_IP_ADDRESS>", "destination-port" => "8080" }])
    Copy to Clipboard Toggle word wrap

9장. Microsoft Azure용 JBoss EAP 구성

이 장에서는 JBoss EAP가 Microsoft Azure에서 실행되는 데 필요한 구성에 대해 설명합니다.

9.1. Red Hat Enterprise Linux에서 부팅 시 JBoss EAP를 서비스로 시작

Microsoft Azure의 Red Hat Enterprise Linux에서 JBoss EAP를 서비스로 시작하는 경우 Azure 가상 머신 호스트 이름이 초기화된 후 시작되도록 JBoss EAP 서비스의 구성을 변경해야 합니다.

프로세스

  • /etc/systemd/system/multi-user.target.wants/eap8-standalone.service 파일을 업데이트하여 waagent.service 에 대한 종속성을 추가합니다.

    다음 행을 교체합니다.

    After=syslog.target network.target
    Copy to Clipboard Toggle word wrap

    이 줄에서 다음을 수행합니다.

    After=syslog.target network.target waagent.service
    Requires=waagent.service
    Copy to Clipboard Toggle word wrap

9.2. Microsoft Azure의 mod_cluster를 사용한 로드 밸런싱 구성

Azure에서 mod_cluster 알림이 지원되지 않기 때문에 JBoss EAP 로드 밸런싱 환경을 구성하는 경우 내부 Microsoft Azure 가상 네트워크에서 액세스할 수 있는 모든 밸런서 및 작업자가 IP 주소에 바인딩되어 있는지 확인해야 합니다.

참고

밸런서와 작업자는 0.0.0.0 이 아닌 실제 내부 Azure 가상 IP 주소(예: 172.28.0.2 )에 바인딩해야 합니다.

또한 mod_cluster 광고를 사용할 수 없기 때문에 JBoss EAP를 mod_cluster 프록시 로드 밸런서 장치로 사용하는 경우 다음과 같이 각 밸런서의 IP 주소와 포트가 포함된 프록시 목록을 사용하도록 각 작업자 노드를 구성해야 합니다.

/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=proxy-one:add(host="BALANCER_IP_ADDRESS", port="BALANCER_PORT")
/subsystem=modcluster/mod-cluster-config=configuration:list-add(name=proxies,value=proxy-one)
Copy to Clipboard Toggle word wrap

9.3. Microsoft Azure에서 ActiveMQ Artemis 고가용성 구성

Artemis 공유 저장소를 사용한 JBoss EAP 메시징 고가용성은 Microsoft Azure에서 지원되지 않습니다. Azure에서 JBoss EAP 메시징 고가용성을 구성하려면 AZURE_PING Cryostat 검색 프로토콜과함께 복제된 저널을 사용해야 합니다.

TCP Cryostat 스택 사용. 복제된 저널 사용에 대한 자세한 내용은 JBoss EAP에 대한 메시징 구성데이터 복제 를 참조하십시오.

AZURE_PING을 사용하여 TCP Cryostat 스택을 구성한 후 messaging-activemq 하위 시스템의 discovery-groupbroadcast-group jgroups-cluster 구성에 Cryostat 스택을 추가해야 합니다. 자세한 내용은 JBoss EAP에 대한 메시징 구성의 Server Discovery 를 참조하십시오.

9.4. Microsoft Azure에서 JBoss EAP의 클러스터링 인스턴스 설정

JBoss EAP의 클러스터링은 Microsoft Azure에서 지원됩니다. 클러스터링을 사용하려면 Microsoft Azure 웹 애플리케이션을 가상 네트워크와 통합해야 합니다. 통합이 완료된 후 웹 애플리케이션을 다시 시작하면 JBoss EAP 인스턴스가 클러스터형 구성으로 시작됩니다.

웹 사이트_DISABLE_CLUSTERING 이라는 앱 설정을 만들어 클러스터링을 비활성화할 수 있습니다. 앱 설정에 값을 할당할 수 있습니다.

Microsoft Azure의 JBoss EAP 애플리케이션을 JBoss EAP로 마이그레이션하는 방법에 대한 자세한 내용은 Microsoft Azure의 JBoss EAP에서 Azure App Service의 JBoss EAP 애플리케이션으로 마이그레이션 을 참조하십시오.

클러스터링에 대한 자세한 내용은 Microsoft Azure의 JBoss EAP 문서의 Cryo stat를 참조하십시오. https://learn.microsoft.com/en-us/azure/app-service/configure-language-java-deploy-run?pivots=java-jboss&tabs=linux#clustering

10장. Microsoft Azure에서 JBoss EAP 고가용성 사용

Microsoft Azure는 UDP 멀티 캐스트를 기반으로 하는 Cryostat 검색 프로토콜을 지원하지 않습니다. 다른 Cryostat 검색 프로토콜(예: 정적 구성(TCPPING), 공유 데이터베이스(JDBC_PING), 공유 파일 시스템 기반 ping(FILE_PING) 또는 TCPGOSSIP를 사용할 수 있지만 Azure: AZURE_PING 용으로 특별히 개발된 공유 파일 검색 프로토콜을 사용하는 것이 좋습니다.

10.1. JBoss EAP 고가용성을 위한 AZURE_PING 구성

이 섹션에서는 AZURE_PING Cryostat 검색 프로토콜을 사용하도록 JBoss EAP 클러스터 구성에 대해 설명합니다. 가상 머신을 생성할 때 사전 요구 사항을 충족해야 합니다.

AZURE_PING은 Microsoft Azure 스토리지 계정의 공통 Blob 컨테이너를 사용합니다. AZURE_PING에서 사용할 수 있는 Blob 컨테이너가 없는 경우 가상 머신에서 액세스할 수 있는 Blob 컨테이너를 만듭니다.

Blob 컨테이너를 만든 후에는 AZURE_PING을 구성하려면 다음 정보가 필요합니다.

  • storage_account_name: Blob 컨테이너가 포함된 Microsoft Azure 스토리지 계정의 이름입니다.
  • storage_access_key: 스토리지 계정의 시크릿 액세스 키입니다.
  • Container: PING 데이터에 사용할 Blob 컨테이너의 이름입니다.
중요

다음 지침은 UDP Cryostat 스택을 사용하여 AZURE_PING을 구성합니다. Azure에서 JBoss EAP 메시징 고가용성 을 구성하는 경우 대신 TCP Cryostat 스택에서 AZURE_PING을 구성해야 합니다.

AZURE_PING을 Cryostat 검색 프로토콜로 사용하도록 JBoss EAP를 구성하려면 사전 구성된 예제 JBoss EAP 구성 파일을 사용하거나 기존 구성 을 수정할 수 있습니다.

10.2. 구성 파일 예제를 사용하여 고가용성 구성

JBoss EAP에는 Microsoft Azure에서 독립 실행형 서버의 클러스터링을 구성하기 위한 구성 파일 예제가 포함되어 있습니다. 이러한 파일은 EAP_HOME/docs/examples/configs/ 에 있으며 standalone-azure-ha.xmlstandalone-azure-full-ha.xml 입니다.

참고

서버 프로필 의 차이점에 대한 설명은 JBoss EAP 구성 가이드를 참조하십시오.

이러한 샘플 구성 파일은 Microsoft Azure의 클러스터링을 사용하기 위해 사전 구성되며 필요한 것은 Azure 스토리지 계정 및 Blob 컨테이너의 값을 지정하는 것입니다.

원하는 예제 구성 파일을 EAP_HOME/standalone/configuration/ 에 복사합니다.

10.3. 기존 서버 고가용성 구성 수정

기존 JBoss EAP 고가용성 구성을 수정하는 경우 jgroups 하위 시스템에 대한 다음과 같은 변경 사항이 필요합니다.

프로세스

  1. 관리 CLI를 시작하고 서버를 포함하여 선택한 구성 파일을 오프라인으로 변경합니다. 예를 들면 다음과 같습니다.

    $ EAP_HOME/bin/jboss-cli.sh
    [disconnected /] embed-server --server-config=standalone-ha.xml
    Copy to Clipboard Toggle word wrap
  2. 기본적으로 Cryostat는 UDP 스택을 사용합니다. 다른 스택을 사용하는 경우 UDP 스택을 사용하여 다시 로 변경합니다.

    [standalone@embedded /] /subsystem=jgroups/channel=ee:write-attribute(name=stack,value=udp)
    Copy to Clipboard Toggle word wrap
  3. 다음 명령 배치를 실행하여 기존 UDP 스택을 제거하고 Microsoft Azure에 구성된 새 UDP 스택을 삽입합니다.

    중요

    다음 명령에서 사용된 storage_access_key 의 인코딩은 Base64여야 합니다.

    batch
    /subsystem=jgroups/stack=udp:remove
    /subsystem=jgroups/stack=udp:add()
    /subsystem=jgroups/stack=udp/transport=UDP:add(socket-binding=jgroups-udp,properties={ip_mcast=false})
    /subsystem=jgroups/stack=udp/protocol=azure.AZURE_PING:add(properties={storage_account_name="${jboss.jgroups.azure_ping.storage_account_name}", storage_access_key="${jboss.jgroups.azure_ping.storage_access_key}", container="${jboss.jgroups.azure_ping.container}"})
    /subsystem=jgroups/stack=udp/protocol=MERGE3:add
    /subsystem=jgroups/stack=udp/protocol=FD_SOCK2:add(socket-binding=jgroups-udp-fd)
    /subsystem=jgroups/stack=udp/protocol=FD_ALL3:add
    /subsystem=jgroups/stack=udp/protocol=VERIFY_SUSPECT2:add
    /subsystem=jgroups/stack=udp/protocol=pbcast.NAKACK2:add(properties={use_mcast_xmit=false,use_mcast_xmit_req=false})
    /subsystem=jgroups/stack=udp/protocol=UNICAST3:add
    /subsystem=jgroups/stack=udp/protocol=pbcast.STABLE:add
    /subsystem=jgroups/stack=udp/protocol=pbcast.GMS:add
    /subsystem=jgroups/stack=udp/protocol=UFC:add
    /subsystem=jgroups/stack=udp/protocol=MFC:add
    /subsystem=jgroups/stack=udp/protocol=FRAG4:add
    run-batch
    Copy to Clipboard Toggle word wrap
    참고

    구성 파일에 Microsoft Azure 스토리지 계정 및 Blob 컨테이너의 값을 저장하려면 위의 구성의 시스템 속성 참조를 Azure 환경의 값으로 교체합니다. 다음 명령에서는 JBoss EAP를 시작하는 예제를 사용하여 시스템 속성이 사용됩니다.

    구성 파일의 스택 XML은 다음과 같아야 합니다.

    <stack name="udp">
        <transport type="UDP" socket-binding="jgroups-udp"/>
        <protocol type="RED"/>
        <protocol type="azure.AZURE_PING">
            <property name="storage_account_name">${jboss.jgroups.azure_ping.storage_account_name}</property>
            <property name="storage_access_key">${jboss.jgroups.azure_ping.storage_access_key}</property>
            <property name="container">${jboss.jgroups.azure_ping.container}</property>
        </protocol>
        <protocol type="MERGE3"/>
        <socket-protocol type="FD_SOCK2" socket-binding="jgroups-udp-fd"/>
        <protocol type="FD_ALL3"/>
        <protocol type="VERIFY_SUSPECT2"/>
        <protocol type="pbcast.NAKACK2"/>
        <protocol type="UNICAST3"/>
        <protocol type="pbcast.STABLE"/>
        <protocol type="pbcast.GMS"/>
        <protocol type="UFC"/>
        <protocol type="MFC"/>
        <protocol type="FRAG4"/>
    </stack>
    Copy to Clipboard Toggle word wrap
  4. 포함된 서버를 중지하고 관리 CLI를 종료합니다.

    [standalone@embedded /] stop-embedded-server
    [disconnected /] exit
    Copy to Clipboard Toggle word wrap

10.4. Microsoft Azure에서 JBoss EAP 고가용성 시작

Microsoft Azure에서 고가용성을 사용하여 JBoss EAP를 시작하려면 다음을 수행해야 합니다.

  • AZURE_PING 검색 프로토콜로 구성된 구성 파일을 사용하고 Microsoft Azure 스토리지 계정 및 Blob 컨테이너의 필수 값을 지정합니다.
  • 트래픽 클러스터링에 사용되는 Microsoft Azure 내부 IP 주소에 개인 인터페이스를 바인딩합니다. 시작 시, 아래 표시된 대로 또는 JBoss EAP 구성 가이드에표시된 설정 구성으로 이 작업을 수행할 수 있습니다.

    주의

    보안상의 이유로 의도하지 않은 네트워크에 클러스터링 트래픽을 노출하지 않도록 해야 합니다.

    이를 위해 Microsoft Azure 가상 네트워크에 끝점을 제한하거나 클러스터링 트래픽을 위한 전용 가상 네트워크 및 전용 가상 머신 NIC를 생성하여 이 작업을 수행할 수 있습니다.

프로세스

  • 다음 명령을 사용하여 JBoss EAP 고가용성 인스턴스를 시작합니다. Microsoft Azure 스토리지 계정 및 Blob 컨테이너 값을 구성 파일에 저장한 경우 -Djboss.jgroups.azure_ping 시스템 속성 정의를 생략할 수 있습니다.

    EAP_HOME/bin/standalone.sh -b <IP_ADDRESS> -bprivate <IP_ADDRESS> --server-config=<EAP_CONFIG_FILE>.xml -Djboss.jgroups.azure_ping.storage_account_name=<STORAGE_ACCOUNT_NAME> -Djboss.jgroups.azure_ping.storage_access_key=<STORAGE_ACCESS_KEY> -Djboss.jgroups.azure_ping.container=<CONTAINER_NAME>
    Copy to Clipboard Toggle word wrap

    예를 들면 다음과 같습니다.

    EAP_HOME/bin/standalone.sh -b 172.28.0.2 -bprivate 172.28.0.2 --server-config=standalone-azure-ha.xml -Djboss.jgroups.azure_ping.storage_account_name=my_storage_account -Djboss.jgroups.azure_ping.storage_access_key=y7+2x7P68pQse9MNh58Bkk5po9OGzeJc+0IRqYcQ9Cr/Sp4xiUFJVlbY+MGXJRNx3syksikwm4tOYlFgjvoCmw== -Djboss.jgroups.azure_ping.container=my_blob_container
    Copy to Clipboard Toggle word wrap
    참고

    JBoss EAP 하위 시스템은 필요한 경우에만 시작되므로 고가용성 JBoss EAP 하위 시스템을 시작하려면 JBoss EAP 서버에 배포 가능한 애플리케이션을 배포해야 합니다.

클러스터에서 두 번째 JBoss EAP 인스턴스를 시작한 후 클러스터의 첫 번째 서버의 콘솔 로그에 다음과 유사한 로그가 표시됩니다.

INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,eap-server-1) ISPN000094: Received new cluster view for channel server: [eap-server-1|1] (2) [eap-server-1, eap-server-2]
Copy to Clipboard Toggle word wrap

10.5. Blob 컨테이너의 오래된 검색 파일 정리

AZURE_PING을 사용하는 JBoss EAP 클러스터가 비정상적으로 종료되는 경우 예를 들어 kill -9 를 사용하여 JBoss EAP 프로세스를 종료하면 일부 오래된 검색 파일이 Blob 컨테이너에 남아 있을 수 있습니다.

이러한 파일은 일반적으로 정상 클러스터 종료에서 정리되지만 비정상적인 종료에서 남은 경우 더 이상 온라인 상태가 아닌 노드에 연결을 시도하는 클러스터 구성원의 시작 성능에 영향을 미칠 수 있습니다.

이 문제가 있는 경우 다음 구성을 설정하여 클러스터 코디네이터가 클러스터의 변경 사항이 변경될 때마다 모든 검색 파일을 제거하고 새로 고칠 수 있습니다.

/subsystem=jgroups/stack=udp/protocol=azure.AZURE_PING/property=remove_all_data_on_view_change:add(value=true)
Copy to Clipboard Toggle word wrap
참고

또는 각 뷰 변경에서 컨테이너를 정리하는 것이 바람직하지 않은 경우 클러스터에 참여하려고 하는 노드의 조인 시도 횟수를 줄일 수 있습니다. 기본 조인 시도 수는 10 입니다. 예를 들어 조인 시도 횟수를 3 으로 설정하려면 다음을 수행합니다.

/subsystem=jgroups/stack=udp/protocol=pbcast.GMS/property=max_join_attempts:add(value=3)
Copy to Clipboard Toggle word wrap

오래된 검색 파일이 계속 존재하지만 클러스터에 참여하려는 노드는 더 이상 온라인 상태가 아닌 노드에 연결을 시도하는 데 많은 시간을 소비하지 않습니다.





2025-05-10에 최종 업데이트된 문서

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동