32.4. 옵션 구성
Camel 구성 요소는 두 가지 수준으로 구성됩니다.
- 구성 요소 수준
- 끝점 수준
32.4.1. 구성 요소 옵션 구성 링크 복사링크가 클립보드에 복사되었습니다!
구성 요소 수준은 끝점에서 상속하는 일반 및 공통 구성을 보유한 최상위 수준입니다. 예를 들어, 구성 요소에는 보안 설정, 인증에 대한 자격 증명, 네트워크 연결용 URL 등이 있을 수 있습니다.
일부 구성 요소에는 몇 가지 옵션만 있으며 다른 구성 요소에는 여러 옵션이 있을 수 있습니다. 구성 요소에는 일반적으로 일반적으로 사용되는 미리 구성된 기본값이 있으므로 구성 요소에서 몇 가지 옵션만 구성하거나 전혀 구성하지 않는 경우가 있습니다.
구성 요소 DSL, 구성 파일(application.properties|yaml)을 사용하거나 Java 코드로 직접 구성 요소를 구성하여 수행할 수 있습니다.
32.4.2. 엔드 포인트 옵션 구성 링크 복사링크가 클립보드에 복사되었습니다!
끝점에 가장 많은 옵션이 포함되어 있으므로 끝점에 가장 많은 구성이 있는 경우 끝점에서 수행할 작업을 구성할 수 있습니다. 또한 옵션은 끝점이 소비자(from)로 사용되는지 또는 생산자(to)로 사용되는지 또는 둘 다에 사용되는지로 분류됩니다.
끝점 구성은 대부분 끝점 URI에서 경로 및 쿼리 매개변수로 직접 수행됩니다. 끝점 DSL을 끝점을 안전한 유형의 보안 방법으로 사용할 수도 있습니다.
옵션을 설정할 때는 속성 platformholders를 사용하는 것이 좋습니다.이를 사용하면 URL, 포트 번호, 민감한 정보 및 기타 설정을 하드 코드 할 수 없습니다. 즉 자리 표시자를 사용하면 코드에서 구성을 외부화할 수 있으며 더 많은 유연성과 재사용이 가능합니다.
다음 두 섹션에는 먼저 구성 요소 다음에 대한 모든 옵션이 나열되어 있습니다.
32.4.3. 구성 요소 옵션 링크 복사링크가 클립보드에 복사되었습니다!
JPA 구성 요소는 아래에 나열된 9가지 옵션을 지원합니다.
이름 | 설명 | Default | 유형 |
---|---|---|---|
별칭 (공용) | JPA 엔터티 클래스에 별칭을 매핑합니다. 그런 다음 엔드포인트 URI에서 별칭을 사용할 수 있습니다(정규화된 클래스 이름이 아닌 경우). | map | |
gRPCFactory (common) | 1)Factory를 사용합니다. 이 설정은 강력하게 구성하는 것이 좋습니다. | EntityManagerFactory | |
joinTransaction (common) | camel-jpa 구성 요소는 기본적으로 트랜잭션에 참여합니다. 이 옵션을 사용하여 LOCAL_RESOURCE를 사용하고 JPA 공급자와 조인 트랜잭션이 작동하지 않는 경우와 같이 이 기능을 해제할 수 있습니다. 이 옵션은 모든 끝점에 설정하지 않고 JpaComponent에서 전역적으로 설정할 수도 있습니다. | true | boolean |
sharedEntityManager (common) | 소비자/producer에 Spring의 SharedEntityManager를 사용할지 여부입니다. 대부분의 경우 joinTransaction은 EXTENDEDECDHE가 아니므로 false로 설정해야 합니다. | false | boolean |
TransactionManager (common) | PlatformTransactionManager를 사용하여 트랜잭션을 관리합니다. | PlatformTransactionManager | |
transactionStrategy (common) | 트랜잭션에서 작업을 실행하는 데 TransactionStrategy를 사용합니다. | TransactionStrategy | |
bridgeErrorHandler (consumer) | 사용자가 Camel 라우팅 오류 핸들러로 브리징할 수 있습니다. 이는 소비자가 수신되는 메시지 또는 등을 선택하는 동안 예외가 발생한 것을 의미하며, 이제 라우팅 오류 처리기에 의해 처리되고 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 로깅되고 무시되는 예외를 처리합니다. | false | boolean |
lazyStartProducer (producer) | 첫 번째 메시지에서 생산자를 lazy로 시작해야 하는지 여부입니다. lazy를 시작하여 이를 사용하여 생산자가 시작되지 않고 생산자가 실패할 수 있는 상황에서 CamelContext 및 경로가 시작될 수 있도록 허용할 수 있습니다. 이 시작이 지연되도록 지연되면 Camel의 라우팅 오류 핸들러를 통해 메시지를 라우팅하는 동안 시작 실패를 처리할 수 있습니다. 첫 번째 메시지가 처리되면 프로듀서 생성 및 시작이 다소 시간이 걸릴 수 있으며 총 처리 시간이 길어질 수 있습니다. | false | boolean |
autowiredEnabled (advanced) | autowiring이 활성화되었는지 여부 이 옵션은 일치하는 유형의 단일 인스턴스가 있는지 확인한 다음 구성 요소에 구성됩니다. 이는 JDBC 데이터 소스, JMS 연결 팩토리, AWS 클라이언트 등을 자동으로 구성하는 데 사용할 수 있습니다. | true | boolean |
32.4.4. 끝점 옵션 링크 복사링크가 클립보드에 복사되었습니다!
JPA 엔드포인트는 URI 구문을 사용하여 구성됩니다.
jpa:entityType
jpa:entityType
다음과 같은 경로 및 쿼리 매개변수 사용:
32.4.4.1. 경로 매개변수(1 매개변수) 링크 복사링크가 클립보드에 복사되었습니다!
이름 | 설명 | Default | 유형 |
---|---|---|---|
entityType (common) | 필수 항목 클래스 이름입니다. | 클래스 |
32.4.4.2. 쿼리 매개변수(44 매개변수) 링크 복사링크가 클립보드에 복사되었습니다!
이름 | 설명 | Default | 유형 |
---|---|---|---|
joinTransaction (common) | camel-jpa 구성 요소는 기본적으로 트랜잭션에 참여합니다. 이 옵션을 사용하여 LOCAL_RESOURCE를 사용하고 JPA 공급자와 조인 트랜잭션이 작동하지 않는 경우와 같이 이 기능을 해제할 수 있습니다. 이 옵션은 모든 끝점에 설정하지 않고 JpaComponent에서 전역적으로 설정할 수도 있습니다. | true | boolean |
maximumResults (common) | 쿼리에서 검색할 최대 결과 수를 설정합니다. | -1 | int |
namedQuery (common) | 이름이 지정된 쿼리를 사용합니다. | 문자열 | |
nativeQuery (공용) | 사용자 정의 기본 쿼리를 사용하려면 다음을 수행합니다. 네이티브 쿼리를 사용할 때 resultClass 옵션도 사용할 수 있습니다. | 문자열 | |
CloudEventUnit (공용) | 기본적으로 사용되는 JPA 지속성 단위입니다. | Camel | 문자열 |
쿼리 (공용) | 사용자 정의 쿼리를 사용하려면 다음을 수행합니다. | 문자열 | |
resultClass (공용) | 반환된 페이로드 유형을 정의합니다(우리는 entityManager.createNativeQuery(nativeQuery, resultClass) 대신 entityManager.createNativeQuery(nativeQuery)를 호출합니다. 이 옵션이 없으면 개체 배열을 반환합니다. 데이터를 사용할 때 네이티브 쿼리와 함께 사용할 때만 영향을 미칩니다. | 클래스 | |
consumeDelete (consumer) | true인 경우 엔터티가 사용된 후 삭제됩니다. false인 경우 해당 엔티티는 삭제되지 않습니다. | true | boolean |
consumeLockEntity (consumer) | 폴링 결과를 처리하는 동안 각 엔티티 빈에 배타적 잠금을 설정할지 여부를 지정합니다. | true | boolean |
deleteHandler (consumer) | 사용자 지정 DeleteHandler를 사용하여 소비자가 교환을 처리한 후 행을 삭제하려면 다음을 수행합니다. | DeleteHandler | |
lockModeType (consumer) | 소비자가 잠금 모드를 구성하려면 다음을 수행합니다. CloudEvent 값:
| PESSIMISTIC_WRITE | LockModeType |
maxMessagesPerPoll (consumer) | 폴링당 수집할 최대 메시지 수를 정의하는 정수 값입니다. 기본적으로 최대값은 설정되어 있지 않습니다. 서버를 시작할 때 수천 개의 메시지를 폴링하지 않도록 하는 데 사용할 수 있습니다. 비활성화하려면 0 또는 음수 값을 설정합니다. | int | |
preDeleteHandler (consumer) | 사용자 지정 Pre-DeleteHandler를 사용하여 소비자가 엔터티를 읽은 후 행을 삭제하려면 다음을 수행합니다. | DeleteHandler | |
sendEmptyMessageWhenIdle (consumer) | 폴링 소비자가 파일을 폴링하지 않은 경우 이 옵션을 활성화하여 대신 빈 메시지(체신 없음)를 보낼 수 있습니다. | false | boolean |
skipLockedEntity (consumer) | 잠길 때 NOWAIT를 사용할지 여부를 구성하고 자동으로 엔터티를 건너뛰십시오. | false | boolean |
Transacted (consumer) | 전체 일괄 처리가 처리되면 모든 메시지가 커밋 또는 롤백될 수 있는 트랜잭션 모드로 소비자를 실행할지 여부입니다. 기본 동작(false)은 이전에 성공적으로 처리한 모든 메시지를 커밋하고 마지막으로 실패한 메시지만 롤백하는 것입니다. | false | boolean |
bridgeErrorHandler (consumer (advanced)) | 사용자가 Camel 라우팅 오류 핸들러로 브리징할 수 있습니다. 이는 소비자가 수신되는 메시지 또는 등을 선택하는 동안 예외가 발생한 것을 의미하며, 이제 라우팅 오류 처리기에 의해 처리되고 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 로깅되고 무시되는 예외를 처리합니다. | false | boolean |
exceptionHandler (consumer (advanced)) | 사용자가 사용자 정의 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있으면 이 옵션을 사용하지 않습니다. 기본적으로 소비자는 예외를 처리하며 WARN 또는 ERROR 수준에서 로깅되고 무시됩니다. | ExceptionHandler | |
exchangePattern (consumer (advanced)) | 소비자가 교환을 만들 때 교환 패턴을 설정합니다. CloudEvent 값:
| ExchangePattern | |
매개변수 (advanced) | 이 키/값 매핑은 쿼리 매개 변수를 빌드하는 데 사용됩니다. 일반 유형 java.util.Map이어야 합니다. 여기서 키는 지정된 JPA 쿼리의 이름이 지정된 매개 변수이며 값은 선택할 수 있는 해당 유효한 값입니다. 생산자에 사용되는 경우 Simple 표현식을 매개변수 값으로 사용할 수 있습니다. 메시지 본문, 헤더 등에서 매개변수 값을 검색할 수 있습니다. | map | |
pollStrategy (consumer (advanced)) | 플러그형 org.apache.camel.PollingConsumerPollingStrategy를 사용하면 Exchange가 생성되고 Camel에서 라우팅되기 전에 일반적으로 폴링 작업 중에 발생한 오류 처리를 제어하기 위해 사용자 지정 구현을 제공할 수 있습니다. | PollingConsumerPollStrategy | |
findEntity (producer) | 활성화되면 생산자는 메시지 본문을 키로 사용하고 entityType을 클래스 유형으로 사용하여 단일 엔티티를 찾습니다. 이는 단일 엔티티를 찾기 위해 쿼리 대신 사용할 수 있습니다. | false | boolean |
flushOnSend (producer) | 엔티티 space가 저장된 후 flush를 플러싱합니다. | true | boolean |
제거 (producer) | entityManager.remove(entity)를 사용하도록 나타냅니다. | false | boolean |
UseExecuteUpdate (producer) | 생산자가 쿼리를 실행할 때 executeUpdate()를 사용할지 여부를 구성하려면 다음을 수행하십시오. skopeo, UPDATE 또는 DELETE 문을 명명된 쿼리로 사용하는 경우 이 옵션을 'true'에 지정해야 합니다. | 부울 | |
usePersist (producer) | entityManager.merge(entity) 대신 entityManager.persist(entity)를 사용하도록 나타냅니다. 참고: entityManager.persist(entity)는 분리된 엔티티에서 작동하지 않습니다(이리 CloudEvent 쿼리 대신 UPDATE를 실행해야 하는 경우)!. | false | boolean |
lazyStartProducer (producer (advanced)) | 첫 번째 메시지에서 생산자를 lazy로 시작해야 하는지 여부입니다. lazy를 시작하여 이를 사용하여 생산자가 시작되지 않고 생산자가 실패할 수 있는 상황에서 CamelContext 및 경로가 시작될 수 있도록 허용할 수 있습니다. 이 시작이 지연되도록 지연되면 Camel의 라우팅 오류 핸들러를 통해 메시지를 라우팅하는 동안 시작 실패를 처리할 수 있습니다. 첫 번째 메시지가 처리되면 프로듀서 생성 및 시작이 다소 시간이 걸릴 수 있으며 총 처리 시간이 길어질 수 있습니다. | false | boolean |
usePassedInEntityManager (producer) | true로 설정하면 Camel은 구성 요소/엔드포인트에서 구성된 엔터티 관리자 대신 JpaConstants.ENTITY_MANAGER 헤더의 ScanSetting을 사용합니다. 이를 통해 최종 사용자가 사용할 엔터티 관리자를 제어할 수 있습니다. | false | boolean |
entityManagerProperties (advanced) | 엔터티 관리자가 사용할 추가 속성입니다. | map | |
sharedEntityManager (advanced) | 소비자/producer에 Spring의 SharedEntityManager를 사용할지 여부입니다. 대부분의 경우 joinTransaction은 EXTENDEDECDHE가 아니므로 false로 설정해야 합니다. | false | boolean |
backoffErrorThreshold (scheduler) | backoffMultipler가 시작하기 전에 발생해야 하는 후속 오류 폴링 수(일부 오류가 발생하여 발생함)입니다. | int | |
backoffIdleThreshold (scheduler) | backoffMultipler가 시작되기 전에 발생할 수 있는 후속 유휴 폴링 수입니다. | int | |
backoffMultiplier (scheduler) | 예약된 폴링 소비자가 행에 후속 유휴/errors 수가 있는 경우 백오프하도록 합니다. 그런 다음 multiplier는 다음 실제 시도가 다시 발생하기 전에 건너뛸 폴링 수입니다. 이 옵션을 사용하는 경우 backoffIdleThreshold 및/또는 backoffErrorThreshold도 구성해야 합니다. | int | |
delay (scheduler) | 다음 폴링 전의 밀리초입니다. | 500 | long |
greedy (scheduler) | greedy가 활성화되면 이전 실행이 1개 이상의 메시지를 폴링한 경우 ScheduledPollConsumer가 즉시 다시 실행됩니다. | false | boolean |
initialDelay (scheduler) | 첫 번째 폴링이 시작되기 전의 밀리초입니다. | 1000 | long |
repeatCount (scheduler) | 최대 스레드 수 제한을 지정합니다. 따라서 1로 설정하면 스케줄러는 한 번만 실행됩니다. 이 값을 5로 설정하면 5번만 실행됩니다. 값이 0 또는 음수이면 영구적으로 발생합니다. | 0 | long |
runLoggingLevel (scheduler) | 소비자는 폴링할 때 시작/완전 로그 행을 기록합니다. 이 옵션을 사용하면 이에 대한 로깅 수준을 구성할 수 있습니다. CloudEvent 값:
| TRACE | LoggingLevel |
scheduledExecutorService (scheduler) | 소비자에게 사용할 사용자 지정/공유 스레드 풀을 구성할 수 있습니다. 기본적으로 각 소비자는 자체 단일 스레드 스레드 풀이 있습니다. | ScheduledExecutorService | |
스케줄러 (scheduler) | cron 스케줄러를 사용하여 camel-spring 또는 camel-quartz 구성 요소를 사용합니다. 스케줄러로 빌드된 경우 value spring 또는 quartz를 사용합니다. | none | 개체 |
schedulerProperties (scheduler) | 사용자 지정 스케줄러 또는 Quartz, Spring 기반 스케줄러를 사용할 때 추가 속성을 구성하려면 다음을 수행합니다. | map | |
startScheduler (scheduler) | 스케줄러를 자동으로 시작할지 여부입니다. | true | boolean |
timeUnit (scheduler) | initialDelay 및 delay 옵션의 시간 단위입니다. CloudEvent 값:
| MILLISECONDS | TimeUnit |
UseFixedDelay (scheduler) | 고정 지연 또는 고정 비율이 사용되는지 여부를 제어합니다. 자세한 내용은 ScheduledExecutorService in JDK를 참조하십시오. | true | boolean |