Microsoft Azure에서 JBoss EAP 사용


Red Hat JBoss Enterprise Application Platform 7.4

고가용성 구성을 포함하여 Microsoft Azure에서 Red Hat JBoss Enterprise Application Platform 사용 지침.

Red Hat Customer Content Services

초록

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

JBoss EAP 문서에 대한 피드백 제공

오류를 보고하거나 문서를 개선하기 위해 Red Hat Jira 계정에 로그인하여 문제를 제출하십시오. Red Hat Jira 계정이 없는 경우 계정을 생성하라는 메시지가 표시됩니다.

절차

  1. 티켓을 생성하려면 다음 링크를 클릭하십시오.
  2. 문서 URL, 섹션 번호 를 포함하고 문제를 설명하십시오.
  3. 요약 에 문제에 대한 간략한 설명을 입력합니다.
  4. 설명에서 문제 또는 개선 사항에 대한 자세한 설명을 제공합니다. 문서에서 문제가 발생한 위치에 URL을 포함합니다.
  5. Submit 을 클릭하고 문제를 적절한 문서 팀으로 라우팅합니다.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1장. 소개

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

이 가이드에서는 Microsoft Azure에서 JBoss EAP 사용과 Azure에서 JBoss EAP 클러스터링을 활성화하는 데 필요한 특정 JBoss EAP 구성을 자세히 설명합니다. 이 가이드에 언급되지 않은 기타 모든 JBoss EAP 기능은 Azure에서 다른 JBoss EAP 설치와 같이 정상적으로 작동합니다. Azure가 아닌 구성 지침은 다른 JBoss EAP 설명서 를 참조하십시오.

1.1. Azure에서 JBoss EAP에 대한 서브스크립션 모델

Azure에 JBoss EAP를 배포하기 위해 두 가지 서브스크립션 모델 중에서 선택할 수 있습니다. 즉, BYOS(Bring Your Own Subscription)와 PAYG(Pay-as-you-go)를 제공합니다.

다음은 두 제품의 차이점입니다.

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

1.2. 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에 대한 자세한 정보를 확인할 수 있습니다.

2장. 지원되는 구성

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

  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 8
  • Microsoft Windows Server 2016
  • Microsoft Windows Server 2019

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

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

2.1. JBoss EAP 7.4 OpenJDK 이미지 Microsoft Azure에서 사용 가능

JBoss EAP 7.4에서는 Azure 템플릿을 통해 Microsoft Azure의 Red Hat Enterprise Linux 8 가상 머신에서 OpenJDK 8 이미지를 사용할 수 있습니다.

2.2. 지원되지 않는 기능

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

공유 저장소를 사용하여 ActiveMQ Artemis 고가용성
Artemis 공유 저장소를 사용한 JBoss EAP 메시징 고가용성은 Microsoft Azure에서 지원되지 않습니다. Azure에서 JBoss EAP 메시징 고가용성을 구성하려면 ActiveMQ Artemis High Availability 섹션의 지침을 참조하십시오.
mod_custer 기업들이
Undertow mod_cluster 프록시 로드 밸런서 장치로 JBoss EAP를 사용하려면 Azure UDP 멀티캐스트 제한으로 인해 mod_cluster 광고가 기능적으로 지원되지 않습니다. 광고 대신 프록시 목록을 사용하도록 mod_cluster 로드 밸런싱을 구성해야 합니다.
가상 머신 스케일링 세트

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

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

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

참고

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

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

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

3장. Microsoft Azure 환경 생성

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

Azure On-Demand 프리미엄 이미지를 사용하여 가상 머신을 생성하거나 수동으로 자체 가상 머신을 생성할 수 있습니다.

중요

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

4장. JBoss EAP 설치

중요

Microsoft Azure Marketplace의 Red Hat Enterprise Linux On-Demand 가상 시스템을 사용하는 경우 ZIP 또는 설치 프로그램 방법을 사용하여 JBoss EAP를 설치해야 합니다. 가상 시스템에 대해 두 번 청구되므로 Red Hat Enterprise Linux 온 디맨드 가상 시스템을 Red Hat 서브스크립션 관리에 등록할 수 없습니다.

Microsoft Azure 환경의 가상 시스템에 JBoss EAP를 설치하는 것은 일반적인 JBoss EAP 설치와 다릅니다. 자세한 내용은 JBoss EAP 설치 가이드를 참조하십시오.

5장. 클라우드 플랫폼에서 작업할 JBoss EAP 하위 시스템 구성

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

5.1. 웹 서비스

클라이언트가 Service.create(wsdlURL, serviceName)을 사용하여 웹 서비스를 요청하면 사용자가 서버 공용 IP 주소에 연결되지만 이후 웹 서비스 하위 시스템의 서버 구성 파일에 정의된 주소로 리디렉션됩니다. 기본적으로 이 주소는 ${jboss.bind.address:127.0.0.1} 입니다. 이는 클라우드 플랫폼에서 호출자가 서버의 개인 IP 주소로 리디렉션되며 요청을 확인할 수 없음을 의미합니다. 다음 명령을 사용하여 서버의 공용 IP 주소를 wsdl-host 요소에 구성해야 합니다.

/subsystem=webservices:write-attribute(name=wsdl-host,value=PUBLIC_IP_ADDRESS)

5.2. 메시징

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

이러한 이유로 전체 프로필을 실행하는 JBoss EAP 서버의 새 커넥터 및 소켓 바인딩을 생성해야 합니다.

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

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

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

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

5.3. 고가용성 구성 원격

클라우드 플랫폼에서 클러스터형 Jakarta Enterprise Beans와 함께 JBoss EAP HA 기능을 사용하는 경우 Jakarta Enterprise Beans 클라이언트가 클러스터 보기 업데이트를 수신할 수 있도록 리모팅 하위 시스템에 대한 일부 추가 구성이 필요합니다.

이는 원격 하위 시스템 소켓 바인딩 에 대한 클라이언트 매핑 을 구성하여 수행됩니다.

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

6장. Microsoft Azure용 JBoss EAP 구성

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

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

/etc/systemd/system/multi-user.target.wants/eap7-standalone.service 를 열고 waagent.service에 종속성을 추가합니다.

다음 행을 바꿉니다.

After=syslog.target network.target

를 다음으로 교체합니다.

After=syslog.target network.target waagent.service
Requires=waagent.service

mod_cluster를 사용한 로드 밸런싱

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

참고

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

또한 mod_cluster 광고 기능을 사용할 수 없기 때문에 JBoss EAP를 Undertow 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)

ActiveMQ Artemis High Availability

Artemis 공유 저장소를 사용한 JBoss EAP 메시징 고가용성은 Microsoft Azure에서 지원되지 않습니다. Azure에서 JBoss EAP 메시징 고가용성을 구성하려면 TCP JGroups 스택을 사용하여 AZURE_PING JGroups 검색 프로토콜과 함께 복제된 저널을 사용해야 합니다. 복제 저널 사용에 대한 자세한 내용은 JBoss EAP에 대한 메시징에서 데이터 복제 참조하십시오.

AZURE_PING을 사용하여 TCP JGroups 스택을 구성한 후 messaging-activemq 하위 시스템의 discovery-groups 및 broadcast-group jgroups-cluster 구성에 JGroups 스택을 추가해야 합니다. 자세한 내용은 JBoss EAP에 대한 메시징 구성의 서버 검색을 참조하십시오.

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

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

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

이 섹션에서는 AZURE_PING JGroups 검색 프로토콜을 사용하도록 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 컨테이너의 이름입니다.

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

중요

다음 지침은 UDP JGroups 스택을 사용하여 AZURE_PING을 구성합니다. Azure에서 JBoss EAP 메시징 고가용성 을 구성하려면 TCP JGroups 스택에서 AZURE_PING을 구성해야 합니다.

7.1.1. 예제 구성 파일 사용

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/ 에 복사합니다.

7.1.2. 기존 구성 수정

기존 JBoss EAP 고가용성 구성을 수정하는 경우 jgroups 하위 시스템을 다음과 같이 변경해야 합니다.

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

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

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

    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_SOCK:add(socket-binding=jgroups-udp-fd)
    /subsystem=jgroups/stack=udp/protocol=FD:add
    /subsystem=jgroups/stack=udp/protocol=VERIFY_SUSPECT: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=FRAG2:add
    run-batch
    참고

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

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

    <stack name="udp">
        <transport type="UDP" socket-binding="jgroups-udp">
            <property name="ip_mcast">
                false
            </property>
        </transport>
        <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"/>
        <protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/>
        <protocol type="FD"/>
        <protocol type="VERIFY_SUSPECT"/>
        <protocol type="pbcast.NAKACK2">
            <property name="use_mcast_xmit">
                false
            </property>
            <property name="use_mcast_xmit_req">
                false
            </property>
        </protocol>
        <protocol type="UNICAST3"/>
        <protocol type="pbcast.STABLE"/>
        <protocol type="pbcast.GMS"/>
        <protocol type="UFC"/>
        <protocol type="FRAG2"/>
    </stack>
  4. 포함된 서버를 중지하고 관리 CLI를 종료합니다.

    [standalone@embedded /] stop-embedded-server
    [disconnected /] exit

7.2. 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

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

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
참고

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]

7.3. JBoss EAP 고가용성 문제 해결

Microsoft Azure에서 클러스터링을 제대로 수행할 수 없는 경우 다음 목록의 모든 요구 사항을 완료했는지 확인합니다.

  • JBoss EAP 서버를 호스팅하는 Microsoft Azure 가상 시스템이 동일한 가상 네트워크를 사용하고 있는지 확인합니다.
  • 사용할 AZURE_PING의 Blob 컨테이너가 있는지 확인합니다.
  • jgroups 하위 시스템에서 구성된 AZURE_PING 검색 프로토콜로 JBoss EAP 구성 파일을 사용 중인지 확인합니다.
  • 공용 및 개인 인터페이스를 올바른 Microsoft Azure IP 주소에 바인딩하고 있는지 확인합니다.
  • Microsoft Azure 스토리지 계정 및 Blob 컨테이너에 대한 올바른 값이 있고 다음 중 하나인지 확인합니다.

    • 구성 파일에 저장하거나
    • JBoss EAP를 시작할 때 올바른 시스템 속성 설정.
  • 클러스터의 모든 JBoss EAP 서버에 배포 가능한 Java 애플리케이션이 배포되었는지 확인합니다.

7.3.1. 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)
참고

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

/subsystem=jgroups/stack=udp/protocol=pbcast.GMS/property=max_join_attempts:add(value=3)

오래된 검색 파일이 남아 있지만 클러스터에 참여하려는 노드는 더 이상 온라인 상태가 아닌 노드에 접속하는 데 많은 시간이 사용되지 않습니다.





2024-02-09에 최종 업데이트된 문서

법적 공지

Copyright © 2024 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
맨 위로 이동