180.4. Camel에서 Cryostat 활성화


참고

Camel 2.8 이상에 필요한 Spring JAR 종속성

spring-context.jar,spring-aop.jar,spring-beans.jar, spring-core.jar 는 Camel에 의해 클래스 경로에 필요합니다. 이러한 .jars가 classpath에 없는 경우 Camel은 비 Cryostat 모드로 대체됩니다. 이 상황은 로거 이름 org.apache.camel.impl.DefaultCamelContext 를 사용하여 WARN 수준에서 기록됩니다.

Camel 2.9 이후부터 Spring JAR은 더 이상 Cryo stat 모드에서 Camel을 실행할 필요가 없습니다.

180.4.1. Cryostat를 사용하여 Apache Camel 관리

기본적으로 Cryostat 계측 에이전트는 Camel에서 활성화됩니다. 즉 Camel 런타임이 VM의 Cryostat Server 인스턴스로 management 오브젝트를 생성하고 등록합니다. 이를 통해 Camel 사용자는 Camel 경로가 개별 프로세서 수준으로 작동하는 방법에 대한 정보를 즉시 얻을 수 있습니다.

지원되는 관리 오브젝트 유형은 끝점,경로,서비스프로세서 입니다. 이러한 관리 오브젝트 중 일부는 성능 카운터 속성 외에도 라이프사이클 작업을 노출합니다.

DefaultManagementNamingStrategy 는 Cryostat 등록에 사용되는 오브젝트 이름을 빌드하는 기본 이름 지정 전략입니다. 기본적으로 org.apache.camelCamelNamingStrategy 에서 생성한 모든 오브젝트 이름의 도메인 이름입니다. Cryostat 오브젝트의 도메인 이름은 Java VM 시스템 속성으로 구성할 수 있습니다.

-Dorg.apache.camel.jmx.mbeanObjectDomainName=your.domain.name

또는 Spring 구성의 camelContext 요소 내에 jmxAgent 요소를 추가하여 다음을 수행합니다.

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <jmxAgent id="agent" mbeanObjectDomainName="your.domain.name"/>
    ...
</camelContext>

Spring 구성은 둘 다 있는 경우 시스템 속성보다 우선합니다. 이는 모든 Cryostat 관련 구성에 적용됩니다.

180.4.2. Camel에서 Cryostat 조정 에이전트 비활성화

다음과 같이 Java VM 시스템 속성을 설정하여 Cryostat 계측 에이전트를 비활성화할 수 있습니다.

-Dorg.apache.camel.jmx.disabled=true

속성 값은 부울 로 처리됩니다.

또는 Spring 구성의 camelContext 요소 내에 jmxAgent 요소를 추가하여 다음을 수행합니다.

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <jmxAgent id="agent" disabled="true"/>
    ...
</camelContext>

또는 Camel 2.1 에서는 다음과 같이 순수 Java를 사용하는 경우(JVM 시스템 속성을 사용하지 않아도) 약간 더 쉽습니다.

CamelContext camel = new DefaultCamelContext();
camel.disableJMX();

180.4.3. Java VM에서 서버 찾기

각 CamelContext는 InstrumentationLifecycleStrategy 내부에 래핑된 InstrumentationAgent 인스턴스를 포함할 수 있습니다. InstrumentationAgent는 /register Camel의 등록/등록 취소를 위해 Server 와 상호 작용하는 오브젝트입니다. 여러 CamelContexts / InstrumentationAgents can / should share a Cryostat Server. 기본적으로 Camel 런타임은 Cryostat Server Factory.findMBeanServer 메서드에서 반환된 첫 번째 CryostatServer를 선택합니다. 이 메서드는 org.apache.camel 의 기본 도메인 이름과 일치합니다.

애플리케이션에서 이미 사용하고 있는 경우 기본 도메인 이름을 변경하여 이미 사용하고 있는 Server 인스턴스와 일치해야 할 수 있습니다. 특히 Cryostat Server 가 Cryostat 커넥터 서버에 연결된 경우 Camel에서 커넥터 서버를 생성할 필요가 없습니다.

시스템 속성을 통해 일치하는 기본 도메인 이름을 구성할 수 있습니다.

-Dorg.apache.camel.jmx.mbeanServerDefaultDomain=<your.domain.name>

또는 Spring 구성의 camelContext 요소 내에 jmxAgent 요소를 추가하여 다음을 수행합니다.

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <jmxAgent id="agent" mbeanServerDefaultDomain="your.domain.name"/>
    ...
</camelContext>

일치하는 Cryostat Server 를 찾을 수 없는 경우 새 도메인 이름이 생성되고 위에서 언급한 대로 기본 및 구성에 따라 새 'MBeanServer'의 기본 도메인 이름이 설정됩니다.

시스템 속성을 설정하여 JVM Cryostat를 관리하는 것이 바람직한 경우 PlatformMBeanServer 를 사용할 수도 있습니다. CryostatServer 기본 도메인 이름 구성은 적용되지 않으므로 무시됩니다.

Important

다음 릴리스(1.5)부터 usePlatformMBeanServer 의 기본값이 true 로 변경됩니다. platform Cryostat Server 를 사용하여 비활성화하려면 속성을 false 로 설정할 수 있습니다.

-Dorg.apache.camel.jmx.usePlatformMBeanServer=True

또는 Spring 구성의 camelContext 요소 내에 jmxAgent 요소를 추가하여 다음을 수행합니다.

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <jmxAgent id="agent" usePlatformMBeanServer="true"/>
    ...
</camelContext>

180.4.4. Camel Cryostat의 시스템 속성 지원

Expand
속성 이름value설명

org.apache.camel.jmx

true 또는 false

true 인 경우 Camel에서 jmx 기능을 활성화합니다.

아래 섹션의 시스템 속성: jmxAgent 속성 참조를 참조하십시오.

180.4.5. Cryostat로 인증을 사용하는 방법

JDK의 Cryostat에는 인증을 위한 기능과 SSL을 통해 보안 연결을 사용하는 기능도 있습니다. 이를 사용하는 방법에 대한 자세한 내용은 SUN 문서를 참조하십시오.

180.4.6. 애플리케이션 서버 내부

180.4.6.1. Tomcat 6

Tomcat에서 Cryostat 활성화에 대한 자세한 내용은 이 페이지를 참조하십시오.

간단히 말해서, catalina.sh (또는 Windows의 catalina.rate) 파일을 수정하여 다음 옵션을 설정합니다.…​

 set CATALINA_OPTS=-Dcom.sun.management.jmxremote \
    -Dcom.sun.management.jmxremote.port=1099 \
    -Dcom.sun.management.jmxremote.ssl=false \
    -Dcom.sun.management.jmxremote.authenticate=false

180.4.6.2. JBoss AS 4

기본적으로 JBoss는 자체 Cryostat Server를 만듭니다. Camel이 동일한 서버에 노출되도록 하려면 다음 단계를 따르십시오.

  1. Camel에 Platform Cryostat Server를 사용하도록 지시합니다 (이 기본값은 Camel 1.5에서 true임)
<camel:camelContext id="camelContext">
  <camel:jmxAgent id="jmxAgent" mbeanObjectDomainName="org.yourname" usePlatformMBeanServer="true"  />
</camel:camelContext>
  1. Platform Cryostat Server 를 사용하도록 JBoss 인스턴스를 변경합니다.
    run.sh 또는 run.conf -Djboss.platform.mbeanserver 를 편집하여 JAVA_OPTS 에 다음 속성을 추가합니다. See http://wiki.jboss.org/wiki/JBossMBeansInJConsole

180.4.6.3. WebSphere

mbeanServerDefaultDomain 을 Cryostat로 변경합니다.

<camel:jmxAgent id="agent" createConnector="true" mbeanObjectDomainName="org.yourname" usePlatformMBeanServer="false" mbeanServerDefaultDomain="WebSphere"/>

180.4.6.4. Oracle OC4j

Oracle OC4J J2EE 애플리케이션 서버에서는 Camel이 플랫폼에 액세스할 수 없습니다. 로그에서 Camel이 WARNING 을 기록하므로 이를 식별할 수 있습니다.

xxx xx, xxxx xx:xx:xx xx org.apache.camel.management.InstrumentationLifecycleStrategy onContextStart
WARNING: Could not register CamelContext MBean
java.lang.SecurityException: Unauthorized access from application: xx to MBean: java.lang:type=ClassLoading
        at oracle.oc4j.admin.jmx.shared.UserMBeanServer.checkRegisterAccess(UserMBeanServer.java:873)

이 문제를 해결하려면 Camel에서 Cryostat 에이전트를 비활성화해야 합니다. Camel에서 Disabling Cryostat 조정 에이전트 를 참조하십시오.

180.4.7. 고급 Cryostat 구성

Spring 구성 파일을 사용하면 Camel이 관리를 위해 Cryostat에 노출되는 방법을 구성할 수 있습니다. 커넥터의 포트 또는 경로 이름과 같이 여기에서 더 많은 정보를 지정할 수 있는 경우도 있습니다.

180.4.8. 예제:

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <jmxAgent id="agent" createConnector="true" registryPort="2000" mbeanServerDefaultDomain="org.apache.camel.test"/>
    <route>
      <from uri="seda:start"/>
      <to uri="mock:result"/>
    </route>
</camelContext>

Java 5 Cryostat 설정을 변경하려면 다양한 Cryostat 시스템 속성을사용할 수 있습니다.

예를 들어 다음 환경 변수(플랫폼에 따라 설정 또는 내보내기 )를 설정하여 Sun#159 커넥터에 대한 원격 Cryostat 연결을 활성화할 수 있습니다. 이러한 설정은 Camel이 기본적으로 생성하는 Cryostat 커넥터가 아닌 Java 1.5+ 내에서만 Sun Cryostat 커넥터를 구성합니다.

SUNJMX=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1616 \
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

(SUNJMX 환경 변수는 Camel에 대한 시작 스크립트에서 JVM의 추가 시작 매개 변수로 사용하기 쉽습니다. Camel을 직접 시작하는 경우 이러한 매개변수를 직접 전달해야 합니다.)

180.4.9. jmxAgent 속성 참조

Expand
Spring 속성시스템 속성기본값설명

id

  

Cryostat 에이전트 이름 및 선택 사항이 아닙니다.

usePlatformMBeanServer

org.apache.camel.jmx.usePlatformMBeanServer

false,true - 릴리스 1.5 이상

true 인 경우 JVM의 Cryo statServer 를 사용합니다.

mbeanServerDefaultDomain

org.apache.camel.jmx.mbeanServerDefaultDomain

org.apache.camel

Server의 기본 Cryostat도메인

mbeanObjectDomainName

org.apache.camel.jmx.mbeanObjectDomainName

org.apache.camel

모든 오브젝트 이름이 사용할 Cryostat 도메인

createConnector

org.apache.camel.jmx.createRmiConnect

false

remote management에 대한 Cryostat 커넥터를 생성해야 하는 경우(원격 관리 허용)

registryPort

org.apache.camel.jmx.rmiConnector.registryPort

1099

RMI 레지스트리에서 사용할 포트

connectorPort

org.apache.camel.jmx.rmiConnector.connectorPort

-1 (dynamic)

RMI 서버가 사용할 포트입니다.

serviceUrlPath

org.apache.camel.jmx.serviceUrlPath

/jmxrmi/camel

Cryostat 커넥터가 등록될 경로입니다.

onlyRegisterProcessorWithCustomId

org.apache.camel.jmx.onlyRegisterProcessorWithCustomId

false

Camel 2.0: 이 옵션이 활성화된 경우 사용자 지정 id 세트가 있는 프로세서만 등록됩니다. 이를 통해 Cryostat 콘솔에서 원하지 않는 프로세서를 제출할 수 있습니다.

statisticsLevel

 

모두 / 기본값

Camel 2.1: performance statistics가 활성화되어 있는지 여부에 대한 수준을 구성합니다. 자세한 내용은 성능 통계에 대한 세분화 수준 구성 을 참조하십시오. Camel 2.16 부터는 All 옵션의 이름이 Default로 이름이 지정되고, 새로운 Extended 옵션이 도입되어 추가 런타임 Cryostat 메트릭을 수집할 수 있습니다.

includeHostName

org.apache.camel.jmx.includeHostName

 

Camel 2.13: Cryostat 이름에 호스트 이름을 포함할지 여부입니다. Camel 2.13 이후부터는 기본적으로 false 입니다. 여기서 이전 릴리스의 기본값은 true 입니다. 이 옵션을 사용하여 실제로 필요한 경우 이전 동작을 복원할 수 있습니다.

useHostIPAddress

org.apache.camel.jmx.useHostIPAddress

false

Camel 2.16: 원격 커넥터를 생성할 때 서비스 URL에서 호스트 이름 또는 IP 주소를 사용할지 여부입니다. 기본적으로 호스트 이름이 사용됩니다.

loadStatisticsEnabled

org.apache.camel.jmx.loadStatisticsEnabled

false

Camel 2.16:로드 통계가 활성화되었는지 여부(gathers 로드 통계를 사용하여 CamelContext당 백그라운드 스레드를 사용함).

endpointRuntimeStatisticsEnabled

org.apache.camel.jmx.endpointRuntimeStatisticsEnabled

true

Camel 2.16: 끝점 런타임 통계가 활성화되어 있는지 여부(입력 및 발신 끝점의gathers 런타임 사용량)입니다.

180.4.10. 새 경로 또는 기본적으로 항상 등록할지 여부 구성

Camel 2.7부터 사용 가능

Camel은 이제 mbeans 등록 여부를 제어하는 두 가지 설정을 제공합니다.

Expand
옵션Default설명

registerAlways

false

활성화하면 항상 등록됩니다.

registerNewRoutes

true

활성화된 경우 CamelContext가 시작된 후 새 경로를 추가하면 지정된 경로의 Cryostat도 등록됩니다.

기본적으로 Camel은 시작 시 구성된 모든 경로에 대해 등록합니다. registerNewRoutes 옵션은 새 경로를 추가하는 경우 등록되어야 하는 경우 제어합니다. 예를 들어 관리가 필요하지 않은 임시 경로를 추가하고 제거하는 경우 이 기능을 비활성화할 수 있습니다.

수신자 목록에 고유한 엔드포인트가 있는 것과 같은 동적 EIP 패턴을 사용할 때 registerAlways 옵션을 사용해야 합니다. 이렇게 하면 각 엔드포인트와 관련 서비스/프로덕터도 등록됩니다. 이로 인해 레지스트리의 mbeans 수가 증가하여 시스템 중단이 발생할 수 있습니다. ScanSetting은 경량 개체가 아니므로 메모리를 사용합니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동