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:foo
및 log: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>