263.26. 박스 외부에서의 기능 사용

Camel 2.14.1로 사용 가능

속성 구성 요소에는 상자 밖의 다음과 같은 기능이 포함되어 있습니다.

  • env - OS 환경 변수에서 속성을 조회하는 함수
  • sys - Java JVM 시스템 속성에서 속성을 조회하는 함수
  • service - 서비스 이름 idiom을 사용하여 OS 환경 변수에서 속성을 조회하는 함수
  • service.name - Camel 2.16.1: 호스트 이름 ID를 반환하는 서비스 이름 idiom을 사용하여 OS 환경 변수에서 속성을 조회하는 함수입니다.
  • service.port - Camel 2.16.1: 포트 이름 지정 idiom을 반환하는 서비스 이름 idiom을 사용하여 OS 환경 변수에서 속성을 조회하는 함수입니다.

이러한 함수를 볼 수 있듯이 환경에서 값을 쉽게 조회할 수 있습니다. 박스에서 제공하는 것처럼, 그들은 아래 그림과 같이 쉽게 사용할 수 있습니다:

  <camelContext xmlns="http://camel.apache.org/schema/blueprint">

    <route>
      <from uri="direct:start"/>
      <to uri="{`{env:SOMENAME}`}"/>
      <to uri="{`{sys:MyJvmPropertyName}`}"/>
    </route>
  </camelContext>

기본값을 사용할 수도 있으므로 속성이 없는 경우 아래와 같이 기본값을 정의할 수 있습니다. 기본값은 log:foolog:bar 값입니다.

  <camelContext xmlns="http://camel.apache.org/schema/blueprint">

    <route>
      <from uri="direct:start"/>
      <to uri="{`{env:SOMENAME:log:foo}`}"/>
      <to uri="{`{sys:MyJvmPropertyName:log:bar}`}"/>
    </route>
  </camelContext>

 

서비스 기능은 서비스 이름 idiom을 사용하여 OS 환경 변수를 사용하여 정의된 서비스를 찾는 것입니다. hostname : port를 사용하여 서비스 위치를 참조합니다.

  • NAME_SERVICE_HOST
  • NAME_SERVICE_PORT

즉, 서비스는 _SERVICE_HOST_SERVICE_PORT 를 접두사로 사용합니다. 따라서 서비스 이름이 FOO인 경우 OS 환경 변수를 다음과 같이 설정해야 합니다.

export $FOO_SERVICE_HOST=myserver
export $FOO_SERVICE_PORT=8888

예를 들어 FO 서비스가 원격 HTTP 서비스를 사용하는 경우 Camel 엔드포인트 URI에서 서비스를 참조하고 HTTP 구성 요소를 사용하여 HTTP 호출을 호출할 수 있습니다.

<camelContext xmlns="http://camel.apache.org/schema/blueprint">
  <route>
    <from uri="direct:start"/>
    <to uri="http://{`{service:FOO}`}/myapp"/>
  </route>
</camelContext>

그리고 서비스가 정의되지 않은 경우 기본값을 사용할 수 있습니다(예: localhost에서 서비스 호출, 단위 테스트용 등)

<camelContext xmlns="http://camel.apache.org/schema/blueprint">
  <route>
    <from uri="direct:start"/>
    <to uri="http://{`{service:FOO:localhost:8080}`}/myapp"/>
  </route>
</camelContext>