179.6.4. 관리 이름 지정 패턴


Camel 2.10에서 사용 가능

Camel 2.10 이후부터 MBean에 대한 이름 지정 패턴을 더 쉽게 구성할 수 있습니다. 패턴은 도메인 이름 뒤에 있는 키로 ObjectName 의 일부로 사용됩니다.

기본적으로 Camel은 ManagedCamelContextMBean 의 MBean 이름을 다음과 같이 사용합니다.

org.apache.camel:context=localhost/camel-1,type=context,name=camel-1
Copy to Clipboard Toggle word wrap

Camel 2.13 에서 호스트 이름은 MBean 이름에 포함되지 않으므로 위의 예는 다음과 같습니다.

org.apache.camel:context=camel-1,type=context,name=camel-1
Copy to Clipboard Toggle word wrap

CamelContext 에서 이름을 구성하는 경우 해당 이름이 ObjectName 의 일부이기도 합니다. 예를 들어, 우리가 가지고 있는 경우

<camelContext id="myCamel" ...>
Copy to Clipboard Toggle word wrap

그런 다음 MBean 이름은 다음과 같습니다.

org.apache.camel:context=localhost/myCamel,type=context,name=myCamel
Copy to Clipboard Toggle word wrap

이제 JVM에 명명 문제가 있는 경우(예: 위에 지정된 이름의 MBean이 이미 존재하는 경우 Camel은 기본적으로 counter를 사용하여 JMXMBeanServer 에서 새 무료 이름을 찾아 이 이름을 자동 수정하려고 합니다. 이제 카운터 아래에 표시되어 있으므로 ObjectName 의 일부로 myCamel-1 이 있습니다.

org.apache.camel:context=localhost/myCamel-1,type=context,name=myCamel
Copy to Clipboard Toggle word wrap

Camel은 기본적으로 다음 토큰을 지원하는 이름 지정 패턴을 사용하기 때문에 가능합니다.

  • camelId = CamelContext ID (예: 이름)
  • name - same as camelId
  • 카운터 - 증분 카운터 * bundleId - OSGi 번들 ID (OSI 환경 전용)
  • symbolicName - OSGi 심볼릭 이름(OSI 환경 전용)
  • 버전 - OSGi 번들 버전 (OSI 환경 전용)

기본 명명 패턴은 OSGi와 비OSGi 간에 차별화됩니다.

  • non OSGI: name
  • OSGi: bundleId-name
  • OSGi Camel 2.13: symbolicName

그러나 JMXMBeanServer 에 명명 문제가 있는 경우 Camel은 자동으로 대체를 수행하고 패턴에서 카운터 를 사용하여 이 문제를 해결합니다. 그러면 다음 패턴이 사용됩니다.

  • OSGI: name-counter
  • OSGi: bundleId-name-counter
  • OSGi Camel 2.13: symbolicName-counter

명시적 이름 지정 패턴을 설정하면 해당 패턴이 항상 사용되며 위의 기본 패턴은 사용되지 않습니다.

이를 통해 레지스트리의 CamelContext ID와 JMXMBeanRegistry 의 JMX MBean 모두에 대해 매우 쉽게 이름을 지정할 수 있습니다.

Camel 2.15 부터 JVM 시스템 속성을 사용하여 기본 관리 이름 패턴을 구성하여 JVM에 대해 전역적으로 구성할 수 있습니다. 아래 예에 표시된 대로 이 패턴을 명시적으로 구성하여 이 패턴을 재정의할 수 있습니다.

이름 앞에 cool를 붙는 기본 관리 이름 패턴을 사용하도록 JVM 시스템 속성을 설정합니다.

System.setProperty(JmxSystemPropertyKeys.MANAGEMENT_NAME_PATTERN, "cool-#name#");
Copy to Clipboard Toggle word wrap

따라서 CamelContext 를 둘 다 명시적으로 지정하고, 변경되지 않는 고정 MBean 이름을 사용하려면(예: 카운터가 없는 경우) 새 managementNamePattern 속성을 사용할 수 있습니다.

<camelContext id="myCamel" managementNamePattern="#name#">
Copy to Clipboard Toggle word wrap

그런 다음 MBean 이름은 항상 다음과 같습니다.

org.apache.camel:context=localhost/myCamel,type=context,name=myCamel
Copy to Clipboard Toggle word wrap

Java에서 managementNamePattern 을 다음과 같이 구성할 수 있습니다.

context.getManagementNameStrategy().setNamePattern("#name#");
Copy to Clipboard Toggle word wrap

또한 managementNamePattern 에서 id와 다른 이름을 사용할 수도 있으므로 예를 들어 다음 작업을 수행할 수 있습니다.

<camelContext id="myCamel" managementNamePattern="coolCamel">
Copy to Clipboard Toggle word wrap

OSGi 환경에서 이 작업을 수행할 수 있습니다. OSGi 번들 ID가 MBean 이름의 일부로 필요하지 않은 경우. OSGi 번들 ID는 서버를 다시 시작하거나 동일한 애플리케이션을 설치 제거하는 경우 변경될 수 있습니다. 그런 다음 OSGi 번들 ID를 이름의 일부로 사용하지 않으려면 다음을 수행할 수 있습니다.

<camelContext id="myCamel" managementNamePattern="#name#">
Copy to Clipboard Toggle word wrap

이를 위해서는 myCamel 이 전체 JVM에서 고유해야 합니다. 동일한 Camel ID 및 managementNamePattern 이 있는 2nd Camel 애플리케이션을 설치하면 Camel이 시작 시 실패하고 MBean이 이미 예외를 보고합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat