7.21. 애플리케이션 Cryostat 변경 사항


이 섹션에서는 애플리케이션을 JBoss EAP 6에서 JBoss EAP 8로 마이그레이션하는 데 필요한 클러스터링 변경 사항을 간략하게 설명합니다. 또한 이 섹션에서는 클러스터링 변경 사항이 애플리케이션을 JBoss EAP 8.0으로 마이그레이션하는 방법에 대해 설명합니다.

7.21.1. 새로운 클러스터링 기능 개요

다음 목록에서는 애플리케이션을 JBoss EAP 6에서 JBoss EAP 8.0으로 마이그레이션할 때 알아야 할 새로운 클러스터링 기능 중 일부를 설명합니다.

  • JBoss EAP 7에는 프로세스를 크게 단순화하는 싱글톤 서비스를 구축하기 위한 새로운 공용 API가 도입되었습니다. Singleton 서비스에 대한 자세한 내용은 JBoss EAP 7.4 개발 가이드HA Singleton 서비스를 참조하십시오.
  • 싱글톤 배포는 한 번에 클러스터의 단일 노드에서만 배포하고 시작하도록 구성할 수 있습니다. 자세한 내용은 JBoss EAP 7.4 개발 가이드의 HA Singleton 배포를 참조하십시오.
  • 클러스터형 싱글톤 Cryostat를 정의할 수 있습니다. 자세한 내용은 JBoss EAP 7.4 Developing Jakarta Enterprise Cryostats 애플리케이션의 Clustered Singleton Cryostat를 참조하십시오.
  • JBoss EAP 8.0에는 Cryostat mod_cluster 구현이 포함되어 있습니다. 이는 httpd 웹 서버가 필요하지 않은 순수 Java 로드 밸런싱 솔루션을 제공합니다. 자세한 내용은 JBoss EAP 7.4 구성 가이드의 JBoss EAP를 프런트 엔드 로드 밸런서로 구성을 참조하십시오.

7.21.2. 웹 세션 구현 변경 사항

JBoss EAP 7에는 새로운 웹 세션 클러스터링 구현이 도입되었습니다. 기존 JBoss Web 하위 시스템 소스 코드와 긴밀하게 연결된 이전 구현을 대체합니다.

새로운 웹 세션 클러스터링 구현은 애플리케이션을 jboss-web.xml JBoss EAP 소유 웹 애플리케이션 XML 설명자 파일에 구성하는 방법에 영향을 미칩니다. 다음은 이 파일에 남아 있는 유일한 클러스터링 구성 요소입니다.

<jboss-web>
  ...
  <max-active-sessions>...</max-active-sessions>
  ...
  <replication-config>
    <replication-granularity>...</replication-granularity>
    <cache-name>...</cache-name>
  </replication-config>
  ...
</jboss-web>

distributable-web 하위 시스템은 jboss-web.xml 의 < replication-config > 요소를 더 이상 사용하지 않습니다. 임시 배포 가능한 웹 세션 프로필을 생성하여 &lt ;replication-config >의 사용을 향상시킵니다.

세션 관리 프로필을 이름 또는 배포별 세션 관리 구성을 제공하여 기본 배포 가능한 세션 관리 동작을 재정의할 수 있습니다. 자세한 내용은 기본 배포 가능한 세션 관리 동작 덮어쓰기를 참조하십시오.

다음 표에서는 현재 사용되지 않는 jboss-web.xml 파일의 요소에 대해 유사한 동작을 수행하는 방법을 설명합니다.

Expand
구성 요소변경에 대한 설명

<max-active-sessions/>

이전에는 활성 세션 수가 < max-active-sessions/>에서 지정한 값을 초과한 경우 세션 생성이 실패했습니다.

새로운 구현에서는 &lt ;max-active-sessions/&gt;를 사용하여 세션 활성화를 활성화합니다. 세션 생성으로 인해 활성 세션 수가 < max-active-sessions/ >를 초과할 경우 세션 관리자에게 알려진 가장 오래된 세션은 새 세션을 위한 공간을 만들도록 활성화됩니다.

<passivation-config/>

JBoss EAP 7부터 이 구성 요소와 하위 요소는 더 이상 사용되지 않습니다.

<use-session-passivation/>

이전에는 이 속성을 사용하여 활성화되었습니다.

새 구현에서 < max-active-sessions/>에 대해 음수가 아닌 값을 지정하여 활성화가 활성화됩니다.

<passivation-min-idle-time/>

이전에는 세션이 활성화 후보가되기 전에 최소 시간 동안 활성화되어야했습니다. 이로 인해 활성화가 활성화된 경우에도 세션 생성이 실패할 수 있습니다.

새로운 구현은 이 논리를 지원하지 않으므로 서비스 거부(DoS) 취약성을 방지할 수 있습니다.

<passivation-max-idle-time/>

이전에는 특정 시간 동안 유휴 상태인 후 세션이 비활성화되었습니다.

새 구현은 지연 활성화만 지원합니다. 빠른 활성화는 지원하지 않습니다. 세션은 < max-active-sessions/>를 준수하는 데 필요한 경우에만 활성화됩니다.

<replication-config/>

distributable-web 하위 시스템은 이 요소를 더 이상 사용하지 않습니다. 자세한 내용은 JBoss EAP 7.4 Development Guide 의 Distributable Web Session Configurations의 배포 가능 웹 하위 시스템기본 배포 세션 관리 동작을 덮어씁니다.

<replication-trigger/>

이전에는 이 요소가 세션 복제가 트리거된 시기를 결정하는 데 사용되었습니다. 새로운 구현은 이 구성 옵션을 강력한 단일 전략으로 대체합니다. 자세한 내용은 JBoss EAP 7.4 개발 가이드의 변경 가능한 세션 속성 을 참조하십시오.

<use-jk/>

이전 버전에서는 <use-jk />에 지정된 값에 따라 mod_jk, mod_proxy_balancer, mod_cluster와 같은 로드 밸런서에서 사용하기 위해 지정된 요청을 처리하는 노드의 instance- idjsessionid 에 추가되었습니다.

새 구현에서 instance-id 가 정의된 경우 항상 jsessionid 에 추가됩니다.

<max-unreplicated-interval/>

이전에는 세션 속성이 변경되지 않은 경우 이 구성 옵션이 세션 타임스탬프의 복제를 방지하기 위한 최적화로 사용되었습니다. 세션 액세스에는 세션 속성이 변경되었는지 여부에 관계없이 캐시 트랜잭션 RPC가 필요하기 때문에 실제로는 RPC를 방지할 수 없습니다.

새 구현에서는 세션의 타임스탬프가 모든 요청에 복제됩니다. 이렇게 하면 장애 조치(failover) 이후 오래된 세션 메타데이터가 발생하지 않습니다.

<snapshot-mode/>

이전에는 < snapshot-mode/ >를 INSTANT 또는 INTERVAL 로 구성할 수 있었습니다. Infinispan의 비동기 복제를 사용하면 이 구성 옵션이 사용되지 않습니다.

<snapshot-interval/>

이는 < snapshot-mode>INTERVAL</snapshot-mode> 에서만 관련이 있었습니다. &lt ;snapshot-mode/&gt;는 더 이상 사용되지 않으므로 이 옵션도 더 이상 사용되지 않습니다.

<session-notification-policy/>

이전에는 이 속성에서 지정한 값으로 세션 이벤트를 트리거하는 정책을 정의했습니다.

새 구현에서 이 동작은 사양 중심이며 구성 불가능합니다.

이 새로운 구현에서는 write-through 캐시 저장소와 passivation 전용 캐시 저장소도 지원합니다. 일반적으로 나중 쓰기 캐시 저장소는 무효화 캐시와 함께 사용됩니다. 무효화 캐시와 함께 사용하면 JBoss EAP 6의 웹 세션 클러스터링 구현이 제대로 작동하지 않았습니다.

7.21.3. 기본 배포 가능한 세션 관리 동작 덮어쓰기

다음 방법 중 하나로 기본 배포 가능 세션 관리 동작을 재정의할 수 있습니다.

  • 이름으로 세션 관리 프로필 참조
  • 배포별 세션 관리 구성 제공
기존 세션 관리 프로필 참조
  • 기존 분산 세션 관리 프로필을 사용하려면 애플리케이션의 /WEB-INF 디렉터리에 있는 distributable-web.xml 배포 설명자를 포함합니다. 예를 들면 다음과 같습니다.

/WEB-INF/distributable-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<distributable-web xmlns="urn:jboss:distributable-web:1.0">
    <session-management name="foo"/>
</distributable-web>
  • 또는 기존 jboss-all.xml 배포 설명자 내에서 대상 분산 세션 관리 프로필을 정의합니다.

/META-INF/jboss-all.xml

<?xml version="1.0" encoding="UTF-8"?>
<jboss xmlns="urn:jboss:1.0">
    <distributable-web xmlns="urn:jboss:distributable-web:1.0">
        <session-management name="foo"/>
    </distributable-web>
</jboss>
배포별 세션 관리 프로필 사용

단일 웹 애플리케이션만 사용자 지정 세션 관리 구성을 사용하는 경우 배포 설명자 자체 내에서 구성을 정의할 수 있습니다. 애드혹 구성은 distributable-web 하위 시스템에서 사용하는 구성과 동일합니다.

  • 배포 설명자 내에서 사용자 지정 세션 관리 구성을 정의합니다. 예를 들면 다음과 같습니다.

/WEB-INF/distributable-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<distributable-web xmlns="urn:jboss:distributable-web:1.0">
    <infinispan-session-management cache-container="foo" cache="bar" granularity="SESSION">
        <primary-owner-affinity/>
    </infinispan-session-management>
</distributable-web>
  • 또는 기존 jboss-all.xml 배포 설명자 내에서 세션 관리 구성을 정의합니다.

/META-INF/jboss-all.xml

<?xml version="1.0" encoding="UTF-8"?>
<jboss xmlns="urn:jboss:1.0">
    <distributable-web xmlns="urn:jboss:distributable-web:1.0">
        <infinispan-session-management cache-container="foo" cache="bar" granularity="ATTRIBUTE">
            <local-affinity/>
        </infinispan-session-management>
    </distributable-web>
</jboss>

7.21.4. 상태 저장 세션 CDI 클러스터링 변경

JBoss EAP 6에서는 다음 방법 중 하나로 SFSB(상태 저장 세션 빈)에 대한 클러스터링 동작을 활성화해야 했습니다.

  • 세션 Cryostat에 org.jboss. Cryostat3.annotation.Clustered 주석을 추가할 수 있습니다.

    @Stateful
    @Clustered
    public class MyBean implements MySessionInt {
    
       public void myMethod() {
          //
       }
    }
  • < clustered> 요소를 jboss- Cryostat3.xml 파일에 추가할 수 있습니다.

    <c:clustering>
      <ejb-name>DDBasedClusteredSFSB</ejb-name>
      <c:clustered>true</c:clustered>
    </c:clustering>

JBoss EAP 7부터 더 이상 클러스터링 동작을 활성화할 필요가 없습니다. 기본적으로 HA 프로필을 사용하여 서버를 시작하면 SFSB의 상태가 자동으로 복제됩니다. 다음 방법 중 하나로 이 기본 동작을 비활성화할 수 있습니다.

  • Enterprise Java Cryostat 3.2 사양의 새로운 @Stateful(passivationCapable=false) 를 사용하여 단일 상태 저장 세션 빈의 기본 동작을 비활성화할 수 있습니다.
  • 서버 구성의 Cryostat 3 하위 시스템의 구성에서 전역적으로 이 동작을 비활성화할 수 있습니다.
참고

@Clustered 주석이 애플리케이션에서 제거되지 않으면 간단히 무시되며 애플리케이션 배포에 영향을 미치지 않습니다.

7.21.5. 클러스터링 서비스 변경

JBoss EAP 6에서 클러스터링 서비스 API는 개인 모듈에 있으며 지원되지 않았습니다.

JBoss EAP 7에는 애플리케이션에서 사용할 수 있는 공용 클러스터링 서비스 API가 도입되었습니다. 새로운 서비스는 경량화되고 쉽게 삽입할 수 있도록 설계되었으며 외부 종속성이 필요하지 않습니다.

  • org.wildfly.clustering.group.Group 인터페이스는 현재 클러스터 상태에 대한 액세스를 제공하며 클러스터 멤버십 변경 사항을 수신 대기할 수 있습니다.
  • 새로운 org.wildfly.clustering.dispatcher.CommandDispatcher 인터페이스를 사용하면 모두 또는 선택된 노드 하위 집합에서 클러스터에서 코드를 실행할 수 있습니다.

이러한 서비스는 이전 릴리스에서 사용 가능한 유사한 API, 즉 JBoss EAP 5 및 GroupCommunicationService,GroupMembershipNotifierGroupRpcDispatcher 의 JBoss EAP 6에서 사용 가능한 유사한 API를 대체합니다.

자세한 내용은 JBoss EAP 7.4 개발 가이드의 public API for Cryostat 서비스를 참조하십시오.

7.21.6. clustering HA Singleton 마이그레이션

JBoss EAP 6에서는 클러스터 전체 HA 싱글톤 서비스에 사용할 수 있는 공용 API가 없었습니다. 개인 org.jboss.as.clustering.singleton.* 클래스를 사용한 경우 애플리케이션을 JBoss EAP 8로 마이그레이션할 때 새 공개 org.wildfly.clustering.singleton.* 패키지를 사용하도록 코드를 변경해야 합니다.

HA 싱글톤 서비스에 대한 자세한 내용은 JBoss EAP 7.4 Development GuideHA Singleton 서비스를 참조하십시오. HA Singleton 배포에 대한 자세한 내용은 JBoss EAP 7.4 Development GuideHA Singleton 배포를 참조하십시오.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동