Apache Camel 구성 요소 참조


Red Hat Fuse 7.9

Camel 구성 요소에 대한 구성 참조

초록

Apache Camel에는 100개 이상의 구성 요소가 있으며 각 구성 요소는 구성할 수 있습니다. 이 가이드에서는 각 구성 요소의 설정을 설명합니다.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지에서 참조하십시오.

1장. 구성 요소 개요

이 장에서는 Apache Camel에 사용할 수 있는 모든 구성 요소에 대한 요약 정보를 제공합니다.

1.1. 컨테이너 유형

Red Hat Fuse는 Camel 애플리케이션을 배포할 수 있는 다양한 컨테이너 유형을 제공합니다.

  • Spring Boot
  • Apache Karaf
  • JBoss EAP(JBoss Enterprise Application Platform)

또한 Camel 애플리케이션을 containerless 로 실행할 수 있습니다. 즉, Camel 애플리케이션이 특별한 컨테이너 없이 JVM에서 직접 실행됩니다.

Fuse는 한 컨테이너에서 Camel 구성 요소를 지원할 수 있지만 다른 컨테이너는 지원하지 않는 경우가 있습니다. 이에 대한 여러 가지 이유가 있지만 경우에 따라 구성 요소가 모든 컨테이너 유형에 적합하지 않습니다. 예를 들어, camel-ejb 구성 요소는 Java EE(즉, JBoss EAP)용으로 특별히 설계되었으며 다른 컨테이너 유형에서는 지원되지 않습니다.

1.2. 지원되는 구성 요소

다음 키를 확인합니다.

Expand
기호설명

지원됨

지원되지 않거나 아직 지원되지 않음

deprecated

향후 릴리스에서 제거 가능

표 1.1. “Apache Camel 구성 요소 지원 매트릭스” 어떤 컨테이너에서 지원되는 Camel 구성 요소에 대한 포괄적인 세부 정보를 제공합니다.

Expand
표 1.1. Apache Camel 구성 요소 지원 매트릭스
구성 요소ContainerlessSpring Boot 2.xKarafJBoss EAP

activemq-camel

activemq-http

camel-ahc

camel-ahc-ws

camel-ahc-wss

camel-amqp

camel-apns

camel-as2

camel-asterisk

camel-atmos

camel-atmosphere-websocket

camel-atom

camel-atomix

camel-avro

camel-aws

camel-azure

camel-bam

deprecated

deprecated

deprecated

camel-bean

camel-bean-validator

camel-beanstalk

camel-binding

deprecated

deprecated

deprecated

camel-blueprint

camel-bonita

camel-box

camel-braintree

camel-browse

camel-cache

deprecated

deprecated

deprecated

camel-caffeine

camel-cdi

deprecated

camel-chronicle-engine

camel-chunk

camel-class

camel-cm-sms

camel-cmis

camel-coap

camel-cometd

camel-context

deprecated

camel-consul

camel-controlbus

camel-couchbase

camel-couchdb

camel-cql

camel-crypto

camel-crypto-cms

camel-cxf

camel-cxf-transport

camel-dataformat

camel-dataset

camel-digitalocean

camel-direct

camel-direct-vm

camel-disruptor

camel-dns

camel-docker

camel-dozer

camel-drill

camel-dropbox

camel-eclipse

deprecated

camel-ehcache

camel-ejb

camel-elasticsearch

camel-elasticsearch5

camel-elasticsearch-rest

camel-elsql

camel-etcd

camel-eventadmin

camel-exec

camel-facebook

camel-fhir

camel-file

camel-flatpack

camel-flink

camel-fop

camel-freemarker

camel-ftp

camel-gae

deprecated

camel-ganglia

camel-geocoder

camel-git

camel-github

camel-google-bigquery

camel-google-calendar

camel-google-drive

camel-google-mail

camel-google-pubsub

camel-google-sheets

camel-grape

camel-groovy-dsl

deprecated

camel-grpc

camel-guava-eventbus

camel-guice

deprecated

deprecated

camel-hawtdb

deprecated

deprecated

deprecated

camel-hazelcast

camel-hbase

camel-hdfs

deprecated

camel-hdfs2

camel-headersmap

camel-hipchat

camel-http

deprecated

deprecated

camel-http4

camel-hystrix

camel-ibatis

deprecated

camel-iec60870

camel-ignite

camel-imap

camel-infinispan

camel-influxdb

camel-ipfs

camel-irc

camel-ironmq

camel-jasypt

camel-javaspace

deprecated

camel-jbpm

camel-jcache

camel-jcifs

camel-jclouds

camel-jcr

camel-jdbc

camel-jetty

deprecated

deprecated

deprecated

camel-jetty8

camel-jetty9

camel-jgroups

camel-jing

camel-jira

camel-jms

camel-jmx

camel-jolt

camel-josql

deprecated

deprecated

deprecated

camel-jpa

camel-jsch

camel-json-validator

camel-jt400

camel-juel

deprecated

deprecated

deprecated

camel-kafka

camel-kestrel

deprecated

deprecated

deprecated

camel-krati

deprecated

deprecated

deprecated

camel-kubernetes

camel-kura

camel-ldap

camel-ldif

camel-leveldb

camel-linkedin

camel-log

camel-lpr

camel-lra

camel-lucene

camel-lumberjack

camel-master

camel-mail

camel-metrics

camel-micrometer

camel-milo

camel-mina

deprecated

camel-mina2

camel-mllp

camel-mock

camel-mongodb

camel-mongodb-gridfs

camel-mongodb3

camel-mqtt

deprecated

deprecated

deprecated

deprecated

camel-msv

camel-mustache

camel-mvel

camel-mybatis

camel-nagios

camel-nats

camel-netty

deprecated

deprecated

camel-netty-http

deprecated

deprecated

camel-netty4

camel-netty4-http

camel-nsq

camel-olingo2

camel-olingo4

camel-openapi-java

camel-openshift

deprecated

camel-openstack

camel-opentracing

camel-optaplanner

camel-paho

camel-paxlogging

camel-pdf

camel-pgevent

camel-pop3

camel-printer

Camel-properties

camel-pubnub

camel-pulsar

camel-quartz

deprecated

camel-quartz2

camel-quickfix

camel-rabbitmq

camel-reactive-streams

camel-reactor

camel-ref

camel-rest

camel-rest-api

camel-rest-openapi

camel-rest-swagger

camel-restlet

camel-ribbon

camel-rmi

camel-routebox

deprecated

camel-rss

camel-rx

deprecated

deprecated

deprecated

camel-rxjava2

camel-saga

camel-salesforce

camel-sap

camel-sap-netweaver

camel-saxon

camel-scala

deprecated

deprecated

deprecated

camel-scheduler

camel-schematron

camel-scp

camel-scr

deprecated

deprecated

camel-script

deprecated

deprecated

deprecated

deprecated

camel-seda

camel-service

camel-servicenow

camel-servlet

camel-servletlistener

deprecated

deprecated

deprecated

camel-sftp

camel-shiro

camel-sip

camel-sjms

camel-sjms2

camel-slack

camel-smpp

camel-snakeyaml

camel-snmp

camel-solr

camel-spark

camel-spark-rest

camel-splunk

camel-spring

camel-spring-batch

camel-spring-boot

camel-spring-cloud

camel-spring-cloud-consul

camel-spring-cloud-netflix

camel-spring-cloud-zookeeper

camel-spring-event

camel-spring-integration

camel-spring-javaconfig

camel-spring-ldap

camel-spring-redis

camel-spring-security

camel-spring-ws

camel-sql

camel-sql-stored

camel-ssh

camel-stax

camel-stomp

camel-stream

camel-string-template

camel-stub

camel-swagger

deprecated

deprecated

camel-swagger-java

camel-tagsoup

camel-telegram

camel-thrift

camel-tika

camel-timer

camel-twilio

camel-twitter

camel-undertow

camel-urlrewrite

deprecated

deprecated

deprecated

camel-validator

camel-velocity

camel-vertx

camel-vm

camel-weather

camel-web3j

camel-websocket

camel-weka

camel-wordpress

camel-xchange

camel-xmlrpc

camel-xmlsecurity

camel-xmpp

camel-xquery

camel-xslt

camel-yammer

camel-yql

camel-zendesk

camel-zipkin

camel-zookeeper

camel-zookeeper-master

Expand
표 1.2. Apache Camel 데이터 형식 지원 매트릭스
구성 요소ContainerlessSpring Boot 2.xKarafJBoss EAP

camel-asn1

camel-avro

camel-barcode

camel-base64

camel-beanio

camel-bindy

camel-boon

camel-castor

deprecated

deprecated

deprecated

camel-crypto

camel-csv

camel-fhir

camel-flatpack

camel-gzip

camel-hessian

deprecated

deprecated

deprecated

deprecated

camel-hl7

camel-ical

camel-jacksonxml

camel-jaxb

camel-jibx

camel-json-fastjson

camel-json-gson

camel-json-jackson

camel-json-johnzon

camel-json-xstream

camel-lzf

camel-mime-multipart

camel-pgp

camel-protobuf

camel-rss

Camel-serialization

camel-soapjaxb

camel-string

camel-syslog

camel-tarfile

camel-thrift

camel-univocity-csv

camel-univocity-fixed

camel-univocity-tsv

camel-xmlbeans

deprecated

deprecated

deprecated

camel-xmljson

deprecated

deprecated

deprecated

deprecated

camel-xmlrpc

camel-xstream

camel-yaml-snakeyaml

camel-zip

camel-zipfile

Expand
표 1.3. Apache Camel 언어 지원 매트릭스
언어ContainerlessSpring Boot 2.xKarafJBoss EAP

빈 메서드

상수

EL

deprecated

ExchangeProperty

파일

groovy

header

JsonPath

JXPath

deprecated

MVEL

OGNL

PHP

deprecated

deprecated

deprecated

Python

deprecated

deprecated

deprecated

Ref

Ruby

deprecated

deprecated

deprecated

simple

SpEL

tokenize

XML Tokenize

XPath

XQuery

2장. ActiveMQ

2.1. ActiveMQ Component

ActiveMQ 구성 요소를 사용하면 메시지를 JMS Queue 또는 Topic으로 보내거나 Apache ActiveMQ 를 사용하여 JMS Queue 또는 Topic에서 사용할 메시지를 보낼 수 있습니다.

이 구성 요소는 178장. JMS 구성 요소 를 기반으로 하며 Spring의 JmsTemplate 을 사용하여 소비하기 위해 MessageListenerContainer 를 사용하여 선언적 트랜잭션에 대해 Spring의 JMS 지원을 사용합니다. 178장. JMS 구성 요소 구성 요소의 모든 옵션이 이 구성 요소에도 적용됩니다.

이 구성 요소를 사용하려면 camel-core.jar,camel-spring.jarcamel-jms.jar 와 같은 모든 Apache Camel 종속 항목과 함께 클래스 경로에 activemq.jar 또는 activemq-core.jar 가 있는지 확인하십시오.

트랜잭션 및 캐싱

JMS 와 함께 트랜잭션을 사용하는 경우 성능에 영향을 줄 수 있으므로 JMS가 포함된 트랜잭션을 사용하는 경우 JMS 페이지에서 아래 섹션 트랜잭션 및 캐시 수준 을 참조하십시오.

2.2. URI 형식

activemq:[queue:|topic:]destinationName
Copy to Clipboard Toggle word wrap

여기서 destinationName 은 ActiveMQ 대기열 또는 주제 이름입니다. 기본적으로 destinationName 은 큐 이름으로 해석됩니다. 예를 들어 큐에 연결하려면 FOO.BAR 을 사용합니다.

activemq:FOO.BAR
Copy to Clipboard Toggle word wrap

원하는 경우 선택적 queue: 접두사를 포함할 수 있습니다.

activemq:queue:FOO.BAR
Copy to Clipboard Toggle word wrap

항목에 연결하려면 topic: 접두사를 포함해야 합니다. 예를 들어 주제, Stocks.Prices 에 연결하려면 다음을 사용합니다.

activemq:topic:Stocks.Prices
Copy to Clipboard Toggle word wrap

2.3. 옵션

이 구성 요소에도 적용되는 모든 옵션이 적용되므로 178장. JMS 구성 요소 구성 요소의 옵션을 참조하십시오.

2.4. EAP 배포용 Camel

이 구성 요소는 Red Hat JBoss EAP(JBoss Enterprise Application Platform) 컨테이너에서 단순화된 배포 모델을 제공하는 Camel on EAP(Wildfly Camel) 프레임워크에서 지원합니다.

포함된 브로커 또는 외부 브로커와 함께 작동하도록 ActiveMQ Camel 구성 요소를 구성할 수 있습니다. JBoss EAP 컨테이너에 브로커를 포함하려면 EAP 컨테이너 구성 파일에서 ActiveMQ 리소스 어댑터를 구성하고 ActiveMQ 리소스 어댑터 구성 을 참조하십시오.

2.5. 연결 팩토리 구성

다음 테스트 사례 는 ActiveMQ 연결에 사용되는 brokerURL 을 지정하는 동안 activeMQComponent() 메서드 를 사용하여 ActiveMQ Component를 CamelContext 에 추가하는 방법을 보여줍니다.

camelContext.addComponent("activemq", activeMQComponent("vm://localhost?broker.persistent=false"));
Copy to Clipboard Toggle word wrap

2.6. Spring XML을 사용하여 연결 팩토리 구성

ActiveMQComponent에서 다음과 같이 ActiveMQ 브로커 URL을 구성할 수 있습니다.

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

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

  <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
    <property name="brokerURL" value="tcp://somehost:61616"/>
  </bean>

</beans>
Copy to Clipboard Toggle word wrap

2.7. 연결 풀링 사용

Camel을 사용하여 ActiveMQ 브로커로 전송하는 경우 풀링된 연결 팩토리를 사용하여 JMS 연결, 세션 및 생산자의 효율적인 풀링을 처리하는 것이 좋습니다. 이 내용은 ActiveMQ Spring Support 페이지에 설명되어 있습니다.

Maven으로 Jencks AMQ 풀을 캡처할 수 있습니다.

    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-pool</artifactId>
      <version>5.3.2</version>
    </dependency>
Copy to Clipboard Toggle word wrap

그런 다음 다음과 같이 activemq 구성 요소를 설정합니다.

    <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616" />
    </bean>

    <bean id="pooledConnectionFactory"    class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
        <property name="maxConnections" value="8" />
        <property name="connectionFactory" ref="jmsConnectionFactory" />
    </bean>

    <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
        <property name="connectionFactory" ref="pooledConnectionFactory"/>
        <property name="concurrentConsumers" value="10"/>
    </bean>

    <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
        <property name="configuration" ref="jmsConfig"/>
    </bean>
Copy to Clipboard Toggle word wrap
참고

풀링된 연결 팩토리의 initdestroy 메서드를 확인합니다. 이는 연결 풀이 올바르게 시작되고 종료되었는지 확인하는 것이 중요합니다.

그런 다음 PooledConnectionFactory 가 동시에 사용 중인 최대 8개의 연결이 있는 연결 풀을 생성합니다. 각 연결은 여러 세션에서 공유할 수 있습니다. 연결당 최대 세션 수를 구성하는 데 사용할 수 있는 maxActive 옵션이 있습니다. 기본값은 500 입니다. ActiveMQ 5.7 이후 옵션은 용도를 보다 잘 반영하기 위해 옵션이 변경되었으며 maxActiveSessionPerConnection 로 이름이 지정되었습니다. concurrentConsumersmaxConnections 보다 더 높은 값으로 설정되어 있습니다. 이는 각 소비자가 세션을 사용하고 있으며 세션으로서 동일한 연결을 공유할 수 있으므로 이는 괜찮습니다. 이 예제에서는 8 * 500 = 4000 활성 세션을 동시에 가질 수 있습니다.

2.8. 경로에서 MessageListener POJO 호출

ActiveMQ 구성 요소는 또한 JMS MessageListener에서 프로세서 로 도우미 유형 변환기 를 제공합니다. 즉, 43장. 빈 구성 요소 구성 요소는 모든 경로 내에서 직접 JMS MessageListener 빈을 호출할 수 있습니다.

예를 들어 다음과 같이 JMS에서 MessageListener를 생성할 수 있습니다.

public class MyListener implements MessageListener {
   public void onMessage(Message jmsMessage) {
       // ...
   }
}
Copy to Clipboard Toggle word wrap

그런 다음 다음과 같이 경로에 사용하십시오.

from("file://foo/bar").
  bean(MyListener.class);
Copy to Clipboard Toggle word wrap

즉, Apache Camel 구성 요소를 재사용하고 JMS MessageListener POJO\에 쉽게 통합할 수 있습니다!

2.9. ActiveMQ 대상 옵션 사용

ActiveMQ 5.6에서 사용 가능

"destination." 접두사를 사용하여 끝점 URI에서 대상 옵션 을 구성할 수 있습니다. 예를 들어 소비자를 배타적으로 표시하고 prefetch 크기를 50으로 설정하려면 다음과 같이 수행할 수 있습니다.

<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="file://src/test/data?noop=true"/>
    <to uri="activemq:queue:foo"/>
  </route>
  <route>
    <!-- use consumer.exclusive ActiveMQ destination option, notice we have to prefix with destination. -->
    <from uri="activemq:foo?destination.consumer.exclusive=true&amp;destination.consumer.prefetchSize=50"/>
    <to uri="mock:results"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

2.10. 권고 메시지 사용

ActiveMQ는 사용할 수 있는 항목에 배치된 권고 메시지 를 생성할 수 있습니다. 이러한 메시지는 느린 소비자를 감지하거나 통계(일별 메시지/생성된 메시지 수 등)를 작성하는 경우에 알림을 보내는 데 도움이 될 수 있습니다. 다음 Spring DSL 예제에서는 주제에서 메시지를 읽는 방법을 보여줍니다.

<route>
	<from uri="activemq:topic:ActiveMQ.Advisory.Connection?mapJmsMessage=false" />
	<convertBodyTo type="java.lang.String"/>
	<transform>
	     <simple>${in.body}&#13;</simple>
	</transform>
	<to uri="file://data/activemq/?fileExist=Append&ileName=advisoryConnection-${date:now:yyyyMMdd}.txt" />
</route>
Copy to Clipboard Toggle word wrap

큐에서 메시지를 사용하는 경우 data/activemq 폴더에 다음 파일이 표시됩니다.If you consume a message on a queue, you should see the following files under data/activemq folder:

advisoryConnection-20100312.txt advisoryProducer-20100312.txt

문자열을 포함하는 경우:

      ActiveMQMessage {commandId = 0, responseRequired = false, messageId = ID:dell-charles-3258-1268399815140
      -1:0:0:0:221, originalDestination = null, originalTransactionId = null, producerId = ID:dell-charles-
      3258-1268399815140-1:0:0:0, destination = topic://ActiveMQ.Advisory.Connection, transactionId = null,
      expiration = 0, timestamp = 0, arrival = 0, brokerInTime = 1268403383468, brokerOutTime = 1268403383468,
      correlationId = null, replyTo = null, persistent = false, type = Advisory, priority = 0, groupID = null,
      groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null,
      marshalledProperties = org.apache.activemq.util.ByteSequence@17e2705, dataStructure = ConnectionInfo
      {commandId = 1, responseRequired = true, connectionId = ID:dell-charles-3258-1268399815140-2:50,
      clientId = ID:dell-charles-3258-1268399815140-14:0, userName = , password = *****,
      brokerPath = null, brokerMasterConnector = false, manageable = true, clientMaster = true},
      redeliveryCounter = 0, size = 0, properties = {originBrokerName=master, originBrokerId=ID:dell-charles-
      3258-1268399815140-0:0, originBrokerURL=vm://master}, readOnlyProperties = true, readOnlyBody = true,
      droppable = false}
Copy to Clipboard Toggle word wrap

2.11. 구성 요소 JAR 가져오기

이 종속성이 필요합니다.

  • activemq-camel

ActiveMQ는 ActiveMQ 프로젝트 와 함께 릴리스된 178장. JMS 구성 요소 구성 요소의 확장입니다.

<dependency>
  <groupId>org.apache.activemq</groupId>
  <artifactId>activemq-camel</artifactId>
  <version>5.6.0</version>
</dependency>
Copy to Clipboard Toggle word wrap

3장. AHC 구성 요소

Camel 버전 2.8에서 사용 가능

ahc: 구성 요소는 외부 HTTP 리소스를 사용하기 위해 HTTP 기반 엔드포인트를 제공합니다(HTTP를 사용하여 외부 서버를 호출하는 클라이언트로).
구성 요소는 Async Http Client 라이브러리를 사용합니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-ahc</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

3.1. URI 형식

ahc:http://hostname[:port][/resourceUri][?options]
ahc:https://hostname[:port][/resourceUri][?options]
Copy to Clipboard Toggle word wrap

는 기본적으로 HTTP용 포트 80 및 443을 HTTPS에 사용합니다.

다음 형식 ?option=value&option=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

3.2. AhcEndpoint 옵션

AHC 끝점은 URI 구문을 사용하여 구성됩니다.

ahc:httpUri
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

3.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

httpUri

required: http://hostname:port/path과 같이 사용할 URI

 

URI

3.2.2. 쿼리 매개변수(13 매개변수):

Expand
이름설명기본값유형

bridgeEndpoint (producer)

옵션이 true인 경우 Exchange.HTTP_URI 헤더가 무시되고 요청 끝점의 URI를 사용합니다. 또한 AhcProducer가 모든 오류 응답을 다시 보낼 수 있도록 throwExceptionOnFailure를 false로 설정할 수도 있습니다.

false

boolean

bufferSize (producer)

Camel과 AHC Client 간에 데이터를 전송할 때 사용되는 초기 메모리 버퍼 크기입니다.

4096

int

connectionClose (producer)

Connection Close 헤더를 HTTP 요청에 추가해야 하는지 정의합니다. 이 매개변수는 기본적으로 false입니다.

false

boolean

cookieHandler (producer)

HTTP 세션을 유지 관리하도록 쿠키 처리기 구성

 

CookieHandler

headerFilterStrategy (producer)

사용자 지정 HeaderFilterStrategy를 사용하여 Camel 메시지와의 헤더를 필터링합니다.

 

HeaderFilterStrategy

throwExceptionOnFailure (producer)

원격 서버에서 응답이 실패한 경우 AhcOperationFailedException의 throw를 비활성화하는 옵션입니다. 이를 통해 HTTP 상태 코드와 관계없이 모든 응답을 얻을 수 있습니다.

true

boolean

transferException (producer)

소비자 측에서 Exchange가 실패하고 발생한 Exception이 애플리케이션/x-java-serialized-object 콘텐츠 유형으로 응답에서 직렬화된 경우 (예: Jetty 또는 Servlet Camel 구성 요소 사용) 생산자 측에서 예외는 AhcOperationFailedException 대신 deserialize되고 그대로 발생합니다. 원인된 예외는 직렬화해야 합니다. 이 설정은 기본적으로 꺼져 있습니다. 이를 활성화하면 Java가 요청에서 Java로 들어오는 데이터를 역직렬화하고 잠재적인 보안 위험이 될 수 있다는 점에 유의하십시오.

false

boolean

바인딩 (advanced)

AHC와 Camel 간에 바인딩하는 방법을 제어할 수 있는 사용자 지정 AhcBinding을 사용합니다.

 

AhcBinding

clientConfig (advanced)

사용자 지정 com.ning.http.client.AsyncHttpClient 인스턴스를 사용하도록 AsyncHttpClient를 구성합니다.

 

AsyncHttpClientConfig

clientConfigOptions (고급)

맵의 키/값을 사용하여 AsyncHttpClientConfig를 구성하려면 다음을 수행합니다.

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

clientConfigRealmOptions (보안)

맵의 키/값을 사용하여 AsyncHttpClientConfig Realm을 구성하려면 다음을 수행합니다.

 

map

sslContextParameters (security)

레지스트리의 org.apache.camel.util.jsse.SSLContextParameters에 대한 참조입니다. 이 참조는 구성 요소 수준에서 구성된 모든 SSLContextParameter를 재정의합니다. JSSE 구성 유틸리티 사용을 참조하십시오. 이 옵션을 구성하면 끝점 또는 구성 요소 수준에서 clientConfig 옵션을 통해 제공되는 모든 SSL/TLS 구성 옵션을 재정의합니다.

 

SSLContextParameters

3.3. Spring Boot Auto-Configuration

구성 요소는 아래에 나열된 9 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.ahc.allow-java-serialized-object

요청이 context-type=application/x-java-serialized-object를 사용할 때 java serialization을 허용할지 여부입니다. 기본적으로 꺼집니다. 이를 활성화하면 Java가 요청에서 Java로 들어오는 데이터를 역직렬화하고 잠재적인 보안 위험이 될 수 있다는 점에 유의하십시오.

false

부울

camel.component.ahc.binding

AHC와 Camel 간에 바인딩하는 방법을 제어할 수 있는 사용자 지정 AhcBinding을 사용합니다. 옵션은 org.apache.camel.component.ahc.AhcBinding 유형입니다.

 

문자열

camel.component.ahc.client

사용자 지정 AsyncHttpClient를 사용합니다. 옵션은 org.asynchttpclient.AsyncHttpClient 유형입니다.

 

문자열

camel.component.ahc.client-config

사용자 지정 com.ning.http.client.AsyncHttpClient 인스턴스를 사용하도록 AsyncHttpClient를 구성합니다. 옵션은 org.asynchttpclient.AsyncHttpClientConfig 유형입니다.

 

문자열

camel.component.ahc.enabled

ahc 구성 요소 활성화

true

부울

camel.component.ahc.header-filter-strategy

사용자 지정 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로 헤더를 필터링하려면 다음을 수행합니다. 옵션은 org.apache.camel.spi.HeaderFilterStrategy 유형입니다.

 

문자열

camel.component.ahc.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.ahc.ssl-context-parameters

레지스트리의 org.apache.camel.util.jsse.SSLContextParameters에 대한 참조입니다. 이 옵션을 구성하면 끝점 또는 구성 요소 수준에서 clientConfig 옵션을 통해 제공되는 모든 SSL/TLS 구성 옵션을 재정의합니다. 옵션은 org.apache.camel.util.jsse.SSLContextParameters 유형입니다.

 

문자열

camel.component.ahc.use-global-ssl-context-parameters

글로벌 SSL 컨텍스트 매개 변수의 사용을 활성화합니다.

false

부울

3.4. AhcComponent Options

AHC 구성 요소는 아래에 나열된 8 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

클라이언트 (고급)

사용자 정의 AsyncHttpClient 사용

 

AsyncHttpClient

바인딩 (advanced)

AHC와 Camel 간에 바인딩하는 방법을 제어할 수 있는 사용자 지정 AhcBinding을 사용합니다.

 

AhcBinding

clientConfig (advanced)

사용자 지정 com.ning.http.client.AsyncHttpClient 인스턴스를 사용하도록 AsyncHttpClient를 구성합니다.

 

AsyncHttpClientConfig

sslContextParameters (security)

레지스트리의 org.apache.camel.util.jsse.SSLContextParameters에 대한 참조입니다. 이 옵션을 구성하면 끝점 또는 구성 요소 수준에서 clientConfig 옵션을 통해 제공되는 모든 SSL/TLS 구성 옵션을 재정의합니다.

 

SSLContextParameters

JavaSerialized Object (advanced) 허용

요청이 context-type=application/x-java-serialized-object를 사용할 때 java serialization을 허용할지 여부입니다. 기본적으로 꺼집니다. 이를 활성화하면 Java가 요청에서 Java로 들어오는 데이터를 역직렬화하고 잠재적인 보안 위험이 될 수 있다는 점에 유의하십시오.

false

boolean

useGlobalSslContext 매개변수 (보안)

글로벌 SSL 컨텍스트 매개 변수의 사용을 활성화합니다.

false

boolean

headerFilterStrategy (filter)

사용자 지정 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로 헤더를 필터링하려면 다음을 수행합니다.

 

HeaderFilterStrategy

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AhcComponent 의 모든 옵션을 설정하면 해당 옵션을 생성되는 AhcEndpoints 로 전파합니다. 그러나 AhcEndpoint 는 사용자 지정 옵션을 설정/override할 수도 있습니다. 끝점에 설정된 옵션은 항상 AhcComponent 의 옵션보다 우선합니다.

3.5. 메시지 헤더

Expand
이름유형설명

Exchange.HTTP_URI

문자열

호출할 URI입니다. 는 엔드포인트에서 직접 설정된 기존 URI를 재정의합니다.

Exchange.HTTP_PATH

문자열

요청 URI의 경로, 헤더는 HTTP_URI를 사용하여 요청 URI를 빌드하는 데 사용됩니다. 경로가 "/"로 시작하는 경우 http 생산자는 Exchange.HTTP_BASE_URI 헤더 또는 exchange.getFromEndpointUri()를 기반으로 하는 상대 경로를 찾습니다.

Exchange.HTTP_QUERY

문자열

Camel 2.11 이후: URI 매개변수. 는 끝점에 직접 설정된 기존 URI 매개 변수를 재정의합니다.

Exchange.HTTP_RESPONSE_CODE

int

외부 서버의 HTTP 응답 코드입니다. 200은 OK 입니다.

Exchange.HTTP_CHARACTER_ENCODING

문자열

문자 인코딩.

Exchange.CONTENT_TYPE

문자열

HTTP 콘텐츠 유형입니다. 는 text/html 와 같은 콘텐츠 유형을 제공하도록 IN 및 OUT 메시지에 설정됩니다.

Exchange.CONTENT_ENCODING

문자열

HTTP 콘텐츠 인코딩입니다. gzip 과 같은 콘텐츠 인코딩을 제공하도록 IN 및 OUT 메시지에 설정되어 있습니다.

3.6. 메시지 본문

Camel은 외부 서버의 HTTP 응답을 OUT 본문에 저장합니다. IN 메시지의 모든 헤더가 OUT 메시지에 복사되므로 라우팅 중에 헤더가 유지됩니다. 또한 Camel은 HTTP 응답 헤더와 OUT 메시지 헤더에 추가합니다.

3.7. 응답 코드

Camel은 HTTP 응답 코드에 따라 처리합니다.

  • 응답 코드는 범위 100.299이며 Camel은 성공 대응과 관련이 있습니다.
  • 응답 코드는 범위 300..399에 있으며 Camel은 리디렉션 응답과 관련이 있으며 정보가 포함된 AhcOOperationFailedException 이 발생합니다.
  • 응답 코드는 400 이상이며 Camel은 외부 서버 오류로 간주하고 정보가 포함된 AhcOperationFailedException 이 발생합니다.

    throwExceptionOnFailure

    실패한 응답 코드에 대해 AhcOperationFailedException 이 throw되지 않도록 옵션 throwExceptionOnFailurefalse 로 설정할 수 있습니다. 이를 통해 원격 서버에서 모든 응답을 가져올 수 있습니다.

3.8. AhcOperationFailedException

이 예외에는 다음 정보가 포함됩니다.

  • HTTP 상태 코드
  • HTTP 상태 줄 (상태 코드의 텍스트)
  • 리디렉션 위치, 서버가 리디렉션을 반환하는 경우
  • 서버가 응답으로 본문을 제공하는 경우 java.lang.String 로서 응답 본문

3.9. GET 또는 POST를 사용하여 호출

다음 알고리즘은 GET 또는 POST HTTP 메서드를 사용해야 하는지 확인하는 데 사용됩니다.
1. 헤더에 제공된 메서드를 사용합니다.
2. 쿼리 문자열이 헤더에 제공되는 경우 GET 입니다.
3. 끝점이 쿼리 문자열로 구성된 경우 GET 입니다.
4. 보낼 데이터가 있는 경우 POST (body가 null이 아님)
5. 그렇지 않으면 GET 입니다.

3.10. 호출할 URI 구성

HTTP 생산자의 URI를 직접 엔드포인트 URI로 설정할 수 있습니다. 아래 경로에서 Camel은 HTTP를 사용하여 외부 서버 oldhost 로 호출합니다.

from("direct:start")
        .to("ahc:http://oldhost");
Copy to Clipboard Toggle word wrap

다음과 같은 Spring 샘플이 있습니다.

<camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
  <route>
    <from uri="direct:start"/>
    <to uri="ahc:http://oldhost"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

메시지에 Exchange.HTTP_URI 라는 헤더를 추가하여 HTTP 끝점 URI를 덮어쓸 수 있습니다.

from("direct:start")
    .setHeader(Exchange.HTTP_URI, constant("http://newhost"))
    .to("ahc:http://oldhost");
Copy to Clipboard Toggle word wrap

3.11. URI 매개변수 구성

ahc 생산자는 HTTP 서버로 보낼 URI 매개 변수를 지원합니다. URI 매개 변수는 끝점 URI에서 직접 설정하거나 메시지에서 Exchange.HTTP_QUERY 키를 사용하는 헤더로 설정할 수 있습니다.

from("direct:start")
        .to("ahc:http://oldhost?order=123&detail=short");
Copy to Clipboard Toggle word wrap

또는 헤더에 제공되는 옵션:

from("direct:start")
            .setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
        .to("ahc:http://oldhost");
Copy to Clipboard Toggle word wrap

3.12. http 메서드를 HTTP 생산자로 설정하는 방법

HTTP 구성 요소는 메시지 헤더를 설정하여 HTTP 요청 메서드를 설정하는 방법을 제공합니다. 예를 들면 다음과 같습니다.

from("direct:start")
            .setHeader(Exchange.HTTP_METHOD, constant("POST"))
        .to("ahc:http://www.google.com")
            .to("mock:results");
Copy to Clipboard Toggle word wrap

다음과 같은 Spring 샘플이 있습니다.

<camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
  <route>
    <from uri="direct:start"/>
    <setHeader headerName="CamelHttpMethod">
        <constant>POST</constant>
    </setHeader>
    <to uri="ahc:http://www.google.com"/>
    <to uri="mock:results"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

3.13. charset 구성

POST 를 사용하여 데이터를 보내는 경우 Exchange 속성을 사용하여 charset을 구성할 수 있습니다.If you are using POST to send data you can configure the charset using the Exchange property:

exchange.setProperty(Exchange.CHARSET_NAME, "iso-8859-1");
Copy to Clipboard Toggle word wrap

3.13.1. 끝점 URI의 URI 매개 변수

이 샘플에는 웹 브라우저에 입력한 전체 URI 엔드포인트가 있습니다. 물론 여러 URI 매개변수는 웹 브라우저에서와 마찬가지로 구분 기호로 & amp; 문자를 사용하여 설정할 수 있습니다. Camel은 여기에서 속임수를 사용하지 않습니다.

// we query for Camel at the Google page
template.sendBody("ahc:http://www.google.com/search?q=Camel", null);
Copy to Clipboard Toggle word wrap

3.13.2. 메시지의 URI 매개 변수

Map headers = new HashMap();
headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en");
// we query for Camel and English language at Google
template.sendBody("ahc:http://www.google.com/search", null, headers);
Copy to Clipboard Toggle word wrap

위의 헤더 값에서 ? 접두사가 붙 않아야 하며 & amp; char를 사용하여 일반적으로 매개 변수를 분리할 수 있습니다.

3.13.3. 응답 코드 가져오기

Exchange.HTTP_RESPONSE_CODE 를 사용하여 출력 메시지 헤더에서 값을 가져와 AHC 구성 요소에서 HTTP 응답 코드를 가져올 수 있습니다.

Exchange exchange = template.send("ahc:http://www.google.com/search", new Processor() {
            public void process(Exchange exchange) throws Exception {
                exchange.getIn().setHeader(Exchange.HTTP_QUERY, constant("hl=en&q=activemq"));
            }
   });
   Message out = exchange.getOut();
   int responseCode = out.getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class);
Copy to Clipboard Toggle word wrap

3.14. AsyncHttpClient 구성

AsyncHttpClient 클라이언트는 AsyncHttpClientConfig 를 사용하여 클라이언트를 구성합니다. 자세한 내용은
Async Http Client 설명서를 참조하십시오.

Camel 2.8 에서 구성은 AsyncHttpClientConfig.Builder 에서 제공하는 빌더 패턴을 사용하도록 제한됩니다. Camel 2.8에서 AsyncHttpClientConfig 는 getter/setter를 지원하지 않으므로 Spring bean 스타일(예: XML 파일의 <bean> 태그)을 사용하여 쉽게 만들고 구성할 수 없습니다.

아래 예제에서는 빌더를 사용하여 AhcComponent 에서 구성하는 AsyncHttpClientConfig 를 생성하는 방법을 보여줍니다.

Camel 2.9 에서 AHC 구성 요소는 Async HTTP 라이브러리 1.6.4를 사용합니다. 이 최신 버전은 일반 빈 스타일 구성에 대한 추가 지원을 제공합니다. AsyncHttpClientConfigBean 클래스는 AsyncHttpClientConfig 에서 사용할 수 있는 구성 옵션에 대한 getter 및 setter를 제공합니다. AsyncHttpClientConfigBean 인스턴스는 AHC 구성 요소로 직접 전달되거나 clientConfig URI를 사용하여 끝점 URI에서 참조될 수 있습니다.

Camel 2.9 에서도 사용할 수 있는 기능은 URI에서 직접 구성 옵션을 설정하는 기능입니다. "clientConfig"로 시작하는 URI 매개 변수를 사용하여 AsyncHttpClientConfig 의 다양한 구성 가능한 속성을 설정할 수 있습니다. 끝점 URI에 지정된 속성은 "clientConfig" 매개변수 사용 우선 순위를 사용하여 설정되는 항목과 "clientConfig" URI 매개변수에서 참조하는 구성에 지정된 특성과 병합됩니다. 참조되는 AsyncHttpClientConfig 인스턴스는 각 엔드포인트에 대해 항상 복사되므로 하나의 끝점의 설정이 이전에 생성된 끝점의 설정과 관계없이 유지됩니다. 아래 예제에서는 "clientConfig" 유형 URI 매개 변수를 사용하여 AHC 구성 요소를 구성하는 방법을 보여줍니다.

from("direct:start")
    .to("ahc:http://localhost:8080/foo?clientConfig.maxRequestRetry=3&clientConfig.followRedirects=true")
Copy to Clipboard Toggle word wrap

3.15. SSL 지원(HTTPS)

JSSE 구성 유틸리티 사용

Camel 2.9부터 AHC 구성 요소는 Camel JSSE 구성 유틸리티를 통해 SSL/TLS 구성을 지원합니다.  이 유틸리티는 작성하는 데 필요한 구성 요소별 코드의 양을 크게 줄이고 엔드포인트 및 구성 요소 수준에서 구성할 수 있습니다.  다음 예제에서는 AHC 구성 요소에서 유틸리티를 사용하는 방법을 보여줍니다.

구성 요소의 프로그래밍 구성

KeyStoreParameters ksp = new KeyStoreParameters();
ksp.setResource("/users/home/server/keystore.jks");
ksp.setPassword("keystorePassword");

KeyManagersParameters kmp = new KeyManagersParameters();
kmp.setKeyStore(ksp);
kmp.setKeyPassword("keyPassword");

SSLContextParameters scp = new SSLContextParameters();
scp.setKeyManagers(kmp);

AhcComponent component = context.getComponent("ahc", AhcComponent.class);
component.setSslContextParameters(scp));
Copy to Clipboard Toggle word wrap

끝점의 Spring DSL 기반 구성

...
  <camel:sslContextParameters
      id="sslContextParameters">
    <camel:keyManagers
        keyPassword="keyPassword">
      <camel:keyStore
          resource="/users/home/server/keystore.jks"
          password="keystorePassword"/>
    </camel:keyManagers>
  </camel:sslContextParameters>...
...
  <to uri="ahc:https://localhost/foo?sslContextParameters=#sslContextParameters"/>
...
Copy to Clipboard Toggle word wrap

3.16. 예를 들면 다음과 같습니다.

4장. AHC Websocket 구성 요소

Camel 버전 2.14로 사용 가능

ahc-ws 구성 요소는 Websocket을 통해 외부 서버와 통신하는 클라이언트를 위해 Websocket 기반 엔드포인트를 제공합니다(클라이언트가 외부 서버에 대한 Websocket 연결을 여는 경우).
구성 요소는 Async Http Client 라이브러리를 차례로 사용하는 AHC 구성 요소를 사용합니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-ahc-ws</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

4.1. URI 형식

ahc-ws://hostname[:port][/resourceUri][?options]
ahc-wss://hostname[:port][/resourceUri][?options]
Copy to Clipboard Toggle word wrap

는 기본적으로 ahc-ws에 포트 80을 사용하고 ahc-ws에는 443 포트를 사용합니다.

4.2. AHC-WS Options

AHC-WS 구성 요소는 AHC 구성 요소의 다양한 구성 옵션을 사용할 수 있습니다.

AHC Websocket 구성 요소는 아래에 나열된 8 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

클라이언트 (고급)

사용자 정의 AsyncHttpClient 사용

 

AsyncHttpClient

바인딩 (advanced)

AHC와 Camel 간에 바인딩하는 방법을 제어할 수 있는 사용자 지정 AhcBinding을 사용합니다.

 

AhcBinding

clientConfig (advanced)

사용자 지정 com.ning.http.client.AsyncHttpClient 인스턴스를 사용하도록 AsyncHttpClient를 구성합니다.

 

AsyncHttpClientConfig

sslContextParameters (security)

레지스트리의 org.apache.camel.util.jsse.SSLContextParameters에 대한 참조입니다. 이 옵션을 구성하면 끝점 또는 구성 요소 수준에서 clientConfig 옵션을 통해 제공되는 모든 SSL/TLS 구성 옵션을 재정의합니다.

 

SSLContextParameters

JavaSerialized Object (advanced) 허용

요청이 context-type=application/x-java-serialized-object를 사용할 때 java serialization을 허용할지 여부입니다. 기본적으로 꺼집니다. 이를 활성화하면 Java가 요청에서 Java로 들어오는 데이터를 역직렬화하고 잠재적인 보안 위험이 될 수 있다는 점에 유의하십시오.

false

boolean

useGlobalSslContext 매개변수 (보안)

글로벌 SSL 컨텍스트 매개 변수의 사용을 활성화합니다.

false

boolean

headerFilterStrategy (filter)

사용자 지정 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로 헤더를 필터링하려면 다음을 수행합니다.

 

HeaderFilterStrategy

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AHC Websocket 끝점은 URI 구문을 사용하여 구성됩니다.

ahc-ws:httpUri
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

4.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

httpUri

required: http://hostname:port/path과 같이 사용할 URI

 

URI

4.2.2. 쿼리 매개변수(18 매개변수):

Expand
이름설명기본값유형

bridgeEndpoint (common)

옵션이 true인 경우 Exchange.HTTP_URI 헤더가 무시되고 요청 끝점의 URI를 사용합니다. 또한 AhcProducer가 모든 오류 응답을 다시 보낼 수 있도록 throwExceptionOnFailure를 false로 설정할 수도 있습니다.

false

boolean

bufferSize (일반)

Camel과 AHC Client 간에 데이터를 전송할 때 사용되는 초기 메모리 버퍼 크기입니다.

4096

int

headerFilterStrategy (common)

사용자 지정 HeaderFilterStrategy를 사용하여 Camel 메시지와의 헤더를 필터링합니다.

 

HeaderFilterStrategy

throwExceptionOnFailure (일반)

원격 서버에서 응답이 실패한 경우 AhcOperationFailedException의 throw를 비활성화하는 옵션입니다. 이를 통해 HTTP 상태 코드와 관계없이 모든 응답을 얻을 수 있습니다.

true

boolean

transferException (일반)

소비자 측에서 Exchange가 실패하고 발생한 Exception이 애플리케이션/x-java-serialized-object 콘텐츠 유형으로 응답에서 직렬화된 경우 (예: Jetty 또는 Servlet Camel 구성 요소 사용) 생산자 측에서 예외는 AhcOperationFailedException 대신 deserialize되고 그대로 발생합니다. 원인된 예외는 직렬화해야 합니다. 이 설정은 기본적으로 꺼져 있습니다. 이를 활성화하면 Java가 요청에서 Java로 들어오는 데이터를 역직렬화하고 잠재적인 보안 위험이 될 수 있다는 점에 유의하십시오.

false

boolean

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

sendMessageOnError (consumer)

web-socket 리스너가 오류를 수신한 경우 메시지를 보낼지 여부입니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

connectionClose (producer)

Connection Close 헤더를 HTTP 요청에 추가해야 하는지 정의합니다. 이 매개변수는 기본적으로 false입니다.

false

boolean

cookieHandler (producer)

HTTP 세션을 유지 관리하도록 쿠키 처리기 구성

 

CookieHandler

Streaming(producer) 사용

스트리밍이 여러 개의 텍스트 조각으로 데이터를 보낼 수 있도록 합니다.

false

boolean

바인딩 (advanced)

AHC와 Camel 간에 바인딩하는 방법을 제어할 수 있는 사용자 지정 AhcBinding을 사용합니다.

 

AhcBinding

clientConfig (advanced)

사용자 지정 com.ning.http.client.AsyncHttpClient 인스턴스를 사용하도록 AsyncHttpClient를 구성합니다.

 

AsyncHttpClientConfig

clientConfigOptions (고급)

맵의 키/값을 사용하여 AsyncHttpClientConfig를 구성하려면 다음을 수행합니다.

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

clientConfigRealmOptions (보안)

맵의 키/값을 사용하여 AsyncHttpClientConfig Realm을 구성하려면 다음을 수행합니다.

 

map

sslContextParameters (security)

레지스트리의 org.apache.camel.util.jsse.SSLContextParameters에 대한 참조입니다. 이 참조는 구성 요소 수준에서 구성된 모든 SSLContextParameter를 재정의합니다. JSSE 구성 유틸리티 사용을 참조하십시오. 이 옵션을 구성하면 끝점 또는 구성 요소 수준에서 clientConfig 옵션을 통해 제공되는 모든 SSL/TLS 구성 옵션을 재정의합니다.

 

SSLContextParameters

4.3. Spring Boot Auto-Configuration

구성 요소는 아래에 나열된 9 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.ahc-ws.allow-java-serialized-object

요청이 context-type=application/x-java-serialized-object를 사용할 때 java serialization을 허용할지 여부입니다. 기본적으로 꺼집니다. 이를 활성화하면 Java가 요청에서 Java로 들어오는 데이터를 역직렬화하고 잠재적인 보안 위험이 될 수 있다는 점에 유의하십시오.

false

부울

camel.component.ahc-ws.binding

AHC와 Camel 간에 바인딩하는 방법을 제어할 수 있는 사용자 지정 AhcBinding을 사용합니다. 옵션은 org.apache.camel.component.ahc.AhcBinding 유형입니다.

 

문자열

camel.component.ahc-ws.client

사용자 지정 AsyncHttpClient를 사용합니다. 옵션은 org.asynchttpclient.AsyncHttpClient 유형입니다.

 

문자열

camel.component.ahc-ws.client-config

사용자 지정 com.ning.http.client.AsyncHttpClient 인스턴스를 사용하도록 AsyncHttpClient를 구성합니다. 옵션은 org.asynchttpclient.AsyncHttpClientConfig 유형입니다.

 

문자열

camel.component.ahc-ws.enabled

ahc-ws 구성 요소 활성화

true

부울

camel.component.ahc-ws.header-filter-strategy

사용자 지정 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로 헤더를 필터링하려면 다음을 수행합니다. 옵션은 org.apache.camel.spi.HeaderFilterStrategy 유형입니다.

 

문자열

camel.component.ahc-ws.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.ahc-ws.ssl-context-parameters

레지스트리의 org.apache.camel.util.jsse.SSLContextParameters에 대한 참조입니다. 이 옵션을 구성하면 끝점 또는 구성 요소 수준에서 clientConfig 옵션을 통해 제공되는 모든 SSL/TLS 구성 옵션을 재정의합니다. 옵션은 org.apache.camel.util.jsse.SSLContextParameters 유형입니다.

 

문자열

camel.component.ahc-ws.use-global-ssl-context-parameters

글로벌 SSL 컨텍스트 매개 변수의 사용을 활성화합니다.

false

부울

4.4. Websocket을 통한 데이터 쓰기 및 읽기

ahc-ws 끝점은 엔드포인트가 생산자 또는 소비자로 구성되어 있는지 여부에 따라 소켓에 데이터를 쓰거나 소켓에서 읽을 수 있습니다.

4.5. 데이터를 쓰거나 읽을 URI 구성

아래 경로에서 Camel은 지정된 websocket 연결에 씁니다.

from("direct:start")
        .to("ahc-ws://targethost");
Copy to Clipboard Toggle word wrap

다음과 같은 Spring 샘플이 있습니다.

<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="direct:start"/>
    <to uri="ahc-ws://targethost"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

아래 경로에서 Camel은 지정된 websocket 연결에서 읽습니다.

from("ahc-ws://targethost")
        .to("direct:next");
Copy to Clipboard Toggle word wrap

다음과 같은 Spring 샘플이 있습니다.

<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="ahc-ws://targethost"/>
    <to uri="direct:next"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

 

4.6. 예를 들면 다음과 같습니다.

5장. AMQP 구성 요소

Camel 버전 1.2로 사용 가능

amqp: 구성 요소는 Qpid 프로젝트의 JMS 클라이언트 API를 사용하여 AMQP 1.0 프로토콜 을 지원합니다. AMQP 0.9(특히 RabbitMQ)를 사용하려는 경우 Camel RabbitMQ 구성 요소에도 관심이 있을 수 있습니다. Camel 2.17.0 AMQP 구성 요소가 AMQP 0.9 이상을 지원하기 전에 먼저 Camel 2.17.0은 AMQP 1.0만 지원했습니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-amqp</artifactId>
    <version>${camel.version}</version> <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

5.1. URI 형식

amqp:[queue:|topic:]destinationName[?options]
Copy to Clipboard Toggle word wrap

5.2. AMQP 옵션

대상 이름 뒤에 JMS 구성 요소의 모든 다양한 구성 옵션을 지정할 수 있습니다.

AMQP 구성 요소는 아래에 나열된 81 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

공유 JMS 구성 사용

 

JmsConfiguration

acceptMessages whilee Stopping (consumer)

소비자가 중지되는 동안 메시지를 수락하는지 여부를 지정합니다. 대기열에 포함된 메시지가 여전히 있는 동안 런타임에 JMS 경로를 시작하고 중지하는 경우 이 옵션을 활성화할 수 있습니다. 이 옵션이 false이고 JMS 경로를 중지하면 메시지가 거부될 수 있으며 JMS 브로커는 재전송을 시도해야 하지만 다시 거부될 수 있으며 결국 메시지가 JMS 브로커의 dead letter 큐에서 이동될 수 있습니다. 이 옵션을 사용하려면 이 옵션을 사용하는 것이 좋습니다.

false

boolean

allowReplyManagerQuick Stop (consumer)

응답 관리자에서 request-reply 메시징에 사용된 DefaultMessageListenerContainer에 사용된지 여부에 따라 JmsConfiguration#isAcceptMessages whileeStopping이 활성화되어 있고 org.apache.camel.CamelContext가 현재 중지된 경우 DefaultMessageListenerContainer.runningAllowed 플래그를 빠르게 중지할 수 있습니다. 이 빠른 중지 기능은 일반 JMS 소비자에서 기본적으로 활성화되어 있지만 응답 관리자를 위해 이 플래그를 활성화해야 합니다.

false

boolean

acknowledgementMode (consumer)

Integer로 정의된 JMS 승인 모드입니다. 벤더별 확장을 acknowledgment 모드로 설정할 수 있습니다. 일반 모드에서는 acknowledgementModeName을 대신 사용하는 것이 좋습니다.

 

int

ReLoadingOf Properties (Consumer)

JMS 속성이 필요하지 않기 때문에 일반적으로 비효율적인 메시지가 로드되는 즉시 JMS 속성을 신속하게 로드할 수 있지만 기본 JMS 공급자 및 JMS 속성 사용과 관련된 문제를 조기에 포착할 수 있습니다.

false

boolean

acknowledgementModeName (consumer)

SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE 중 하나인 JMS 승인 이름

AUTO_ ACKNOWLEDGE

문자열

AutoStartup (consumer)

소비자 컨테이너가 자동으로 시작되어야 하는지 여부를 지정합니다.

true

boolean

cacheLevel (consumer)

기본 JMS 리소스의 ID별 캐시 수준을 설정합니다. 자세한 내용은 cacheLevelName 옵션을 참조하십시오.

 

int

cacheLevelName (consumer)

기본 JMS 리소스의 이름으로 캐시 수준을 설정합니다. 가능한 값은 CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE 및 CACHE_SESSION입니다. 기본 설정은 CACHE_AUTO입니다. 자세한 내용은 Spring 문서 및 트랜잭션 캐시 수준을 참조하십시오.

CACHE_AUTO

문자열

replyToCacheLevelName (producer)

JMS를 통해 요청/반복을 수행할 때 응답 소비자의 이름으로 캐시 수준을 설정합니다. 이 옵션은 고정 응답 대기열(임시 아님)을 사용하는 경우에만 적용됩니다. Camel은 기본적으로 배타적 또는 공유 w/ replyToSelectorName에 대해 CACHE_CONSUMER를 사용합니다. 그리고 replyToSelectorName 없이 공유의 경우 CACHE_SESSION을 사용합니다. IBM WebSphere와 같은 일부 JMS 브로커는 작동하도록 replyToCacheLevelName=CACHE_NONE을 설정해야 할 수 있습니다. 참고: 임시 대기열을 사용하는 경우 CACHE_NONE이 허용되지 않으며 CACHE_CONSUMER 또는 CACHE_SESSION과 같은 더 높은 값을 사용해야 합니다.

 

문자열

clientID( 일반)

사용할 JMS 클라이언트 ID를 설정합니다. 이 값은 지정된 경우 고유해야 하며 단일 JMS 연결 인스턴스에서만 사용할 수 있습니다. 일반적으로 내구성 주제 서브스크립션에만 필요합니다. Apache ActiveMQ를 사용하는 경우 대신 가상 주제를 사용할 수 있습니다.

 

문자열

concurrentConsumers (consumer)

JMS에서 사용할 때 기본 동시 소비자 수를 지정합니다( JMS를 통한 요청/복제용 아님). 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/응답 시 replyToConcurrentConsumers 옵션은 응답 메시지 리스너에서 동시 소비자 수를 제어하는 데 사용됩니다.

1

int

replyToConcurrent Consumers (producer)

JMS를 통해 요청/reply를 수행할 때 기본 동시 소비자 수를 지정합니다. 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오.

1

int

ConnectionFactory (일반)

사용할 연결 팩토리입니다. 구성 요소 또는 끝점에서 연결 팩토리를 구성해야 합니다.

 

ConnectionFactory

사용자 이름 (보안)

ConnectionFactory와 함께 사용할 사용자 이름입니다. ConnectionFactory에서 사용자 이름/암호를 직접 구성할 수도 있습니다.

 

문자열

암호 (보안)

ConnectionFactory에 사용할 암호입니다. ConnectionFactory에서 사용자 이름/암호를 직접 구성할 수도 있습니다.

 

문자열

deliveryPersistent (producer)

기본적으로 영구 제공이 사용되는지 여부를 지정합니다.

true

boolean

deliveryMode (producer)

사용할 전달 모드를 지정합니다. 가능한 값은 javax.jms.DeliveryMode에서 정의한 값입니다. NON_PERSISTENT = 1 및 PERSISTENT = 2.

 

정수

durableSubscriptionName (common)

내구성 주제 서브스크립션을 지정하기 위한 내구성 있는 구독자 이름입니다. clientId 옵션도 구성해야 합니다.

 

문자열

exceptionListener (advanced)

기본 JMS 예외에 대해 알림을 받을 JMS Exception Listener를 지정합니다.

 

ExceptionListener

errorHandler (advanced)

메시지를 처리하는 동안 throw되지 않은 예외의 경우 호출될 org.springframework.util.ErrorHandler를 지정합니다. 기본적으로 이러한 예외는 errorHandler가 구성되지 않은 경우 WARN 수준에서 기록됩니다. 로깅 수준 및 스택 추적을 errorHandlerLoggingLevel 및 errorHandlerLogStackTrace 옵션을 사용하여 기록해야 하는지 여부를 구성할 수 있습니다. 이렇게 하면 사용자 지정 오류 처리기를 코딩하는 것보다 훨씬 쉽게 구성할 수 있습니다.This makes it much easier to configure, than having to code a custom errorHandler.

 

ErrorHandler

errorHandlerLogging Level (logging)

은 로깅되지 않은 예외에 대해 기본 errorHandler 로깅 수준을 구성할 수 있습니다.

WARN

LoggingLevel

errorHandlerLogStack Trace (logging)

기본 errorHandler로 stacktrace를 기록해야 하는지 여부를 제어할 수 있습니다.

true

boolean

explicitQosEnabled (producer)

메시지를 보낼 때 서비스의 deliveryMode, 우선순위 또는 timeToLive 특성을 사용해야 하는 경우 설정합니다. 이 옵션은 Spring의 JmsTemplate을 기반으로 합니다. deliveryMode, priority 및 timeToLive 옵션이 현재 엔드포인트에 적용됩니다. 이는 메시지 세분화에서 작동하는 preserveMessageQos 옵션과 달리 Camel In 메시지 헤더에서만 QoS 속성을 읽습니다.

false

boolean

exposeListenerSession (consumer)

메시지를 사용할 때 리스너 세션을 노출해야 하는지 여부를 지정합니다.

false

boolean

idleTaskExecutionLimit (advanced)

수신 작업의 유휴 실행에 대한 제한을 지정하고 해당 실행 내에 메시지를 받지 못했습니다. 이 제한에 도달하면 작업이 종료되고 다른 실행 작업에 대한 수신을 그대로 둡니다(동적 스케줄링의 경우 maxConcurrentConsumers 설정을 참조). Spring에서 사용할 수 있는 추가 doc가 있습니다.

1

int

idleConsumerLimit (advanced)

언제든지 유휴 상태일 수 있는 소비자 수에 대한 제한을 지정합니다.

1

int

maxConcurrentConsumers (Consumer)

JMS에서 사용할 때 최대 동시 소비자 수를 지정합니다( JMS를 통한 요청/복제용 아님). 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/응답 시 replyToMaxConcurrentConsumers 옵션은 응답 메시지 리스너에서 동시 소비자 수를 제어하는 데 사용됩니다.

 

int

replyToMaxConcurrent Consumers (producer)

JMS에서 요청/reply를 사용할 때 최대 동시 소비자 수를 지정합니다. 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오.

 

int

replyOnTimeoutToMax ConcurrentConsumers (producer)

JMS를 통해 요청/reply를 사용할 때 시간 초과가 발생한 경우 계속 라우팅할 수 있는 최대 동시 소비자 수를 지정합니다.

1

int

maxMessagesPerTask (advanced)

작업당 메시지 수입니다. -1은 무제한입니다. 동시 소비자에 범위(예: max)를 사용하는 경우 이 옵션을 사용하여 더 적은 작업이 필요할 때 소비자의 속도를 축소하는 방법을 제어하기 위해 값을 100으로 설정할 수 있습니다.

-1

int

messageConverter (advanced)

사용자 지정 Spring org.springframework.jms.support.converter.MessageConverter를 사용하려면 javax.jms.Message에 매핑할 수 있는 방법을 제어할 수 있습니다.

 

MessageConverter

mapJmsMessage (advanced)

Camel이 수신된 JMS 메시지를 javax.jms.TextMessage와 같은 적절한 페이로드 유형에 자동 매핑해야 하는지 여부를 문자열 등에 지정합니다.

true

boolean

messageIdEnabled (advanced)

전송할 때 메시지 ID를 추가해야 하는지 여부를 지정합니다. 이는 JMS 브로커에 대한 힌트일 뿐입니다. JMS 공급자가 이 힌트를 수락하는 경우 이러한 메시지에는 메시지 ID가 null로 설정되어야 합니다. 공급자가 힌트를 무시하는 경우 메시지 ID를 일반 고유 값으로 설정해야 합니다.

true

boolean

messageTimestampEnabled (advanced)

메시지 전송 시 기본적으로 타임스탬프를 활성화할지 여부를 지정합니다. 이는 JMS 브로커에 대한 힌트일 뿐입니다. JMS 공급자가 이 힌트를 수락하는 경우 이러한 메시지에는 타임스탬프가 0으로 설정되어야 합니다. 공급자가 힌트를 무시하면 타임스탬프를 정규 값으로 설정해야 합니다.

true

boolean

alwaysCopyMessage (producer)

true인 경우 Camel은 전송을 위해 생산자에 전달될 때 항상 메시지의 JMS 메시지 사본을 만듭니다. replyToDestinationSelectorName이 설정된 경우와 같이 메시지를 복사하는 데 필요한 경우 Camel은 replyToDestinationSelectorName이 설정된 경우 alwaysCopyMessage 옵션을 true로 설정합니다.

false

boolean

useMessageIDAs CorrelationID (advanced)

JMSMessageID를 항상 InOut 메시지의 JMSCorrelationID로 사용할지 여부를 지정합니다.

false

boolean

우선 순위 (producer)

1보다 큰 값은 보낼 때 메시지 우선 순위를 지정합니다(여기서 0이 가장 낮은 우선 순위이고 9가 가장 높은 경우). 이 옵션을 적용하려면 explicitQosEnabled 옵션도 활성화해야 합니다.

4

int

pubSubNoLocal (advanced)

자체 연결에서 게시한 메시지 배달을 금지할지 여부를 지정합니다.Specifies whether to inhibit the delivery of messages published by its own connection.

false

boolean

receiveTimeout (advanced)

메시지 수신 시간(밀리초)입니다.

1000

long

복구Interval (advanced)

연결이 새로 고쳐질 때(즉, 밀리초) 복구 시도 사이의 간격을 지정합니다. 기본값은 5000ms, 즉 5초입니다.

5000

long

taskExecutor (consumer)

메시지를 사용하기 위한 사용자 지정 작업 executor를 지정할 수 있습니다.

 

TaskExecutor

deliveryDelay (producer)

JMS에 대한 전송 호출에 사용할 전달 지연을 설정합니다. 이 옵션에는 JMS 2.0 호환 브로커가 필요합니다.

-1

long

TimeToLive (producer)

메시지를 보낼 때 메시지의 TTL(밀리초)을 지정합니다.

-1

long

트랜잭션(Transaction acted )

transacted 모드를 사용할지 여부를 지정합니다.

false

boolean

lazyCreateTransaction Manager (transaction)

true인 경우 Camel은 옵션을 transacted=true할 때 삽입된 transactionManager가 없는 경우 JmsTransactionManager를 생성합니다.

true

boolean

TransactionManager (transaction)

사용할 Spring 트랜잭션 관리자입니다.

 

PlatformTransaction Manager

transactionName (transaction)

사용할 트랜잭션의 이름입니다.

 

문자열

TransactionTimeout (transaction)

트랜잭션 모드를 사용하는 경우 트랜잭션의 시간 초과 값(초 단위)입니다.

-1

int

testConnectionOn 시작 (일반)

시작 시 연결을 테스트할지 여부를 지정합니다.Specifies whether to test the connection on startup. 이를 통해 Camel이 모든 JMS 소비자가 JMS 브로커에 대한 유효한 연결을 시작하게 합니다. 연결을 허용할 수 없는 경우 Camel은 시작 시 예외를 throw합니다. 이렇게 하면 Camel이 실패한 연결로 시작되지 않습니다. JMS 생산자도 테스트 중입니다.

false

boolean

asyncStartListener (advanced)

경로를 시작할 때 JmsConsumer 메시지 리스너를 비동기적으로 시작할지 여부입니다. 예를 들어 JmsConsumer가 원격 JMS 브로커에 대한 연결을 가져올 수 없는 경우 재시도 및/또는 페일오버를 시도하는 동안 차단될 수 있습니다. 이로 인해 Camel이 경로를 시작하는 동안 차단됩니다. 이 옵션을 true로 설정하면 JmsConsumer가 비동기 모드에서 전용 스레드를 사용하여 JMS 브로커에 연결하는 동안 시작 경로를 지정할 수 있습니다. 이 옵션을 사용하면 연결을 설정할 수 없는 경우 예외가 WARN 수준에서 기록되고 소비자는 메시지를 수신할 수 없습니다. 그런 다음 다시 시도하도록 경로를 다시 시작할 수 있습니다.

false

boolean

asyncStopListener (advanced)

경로를 중지할 때 JmsConsumer 메시지 리스너를 비동기적으로 중지할지 여부입니다.

false

boolean

forceSendOriginal Message (producer)

mapJmsMessage=false Camel을 사용하면 경로 중 헤더를 만났을 때 새 JMS 대상에 보낼 새 JMS 메시지가 생성됩니다. 수신한 원래 JMS 메시지를 전송하도록 Camel을 강제 적용하려면 이 옵션을 true로 설정합니다.

false

boolean

requestTimeout (producer)

InOut Exchange Pattern(밀리초)을 사용할 때 응답을 기다리는 시간 초과입니다. 기본값은 20초입니다. 이 엔드포인트 구성 시간 값을 재정의하기 위해 CamelJmsRequestTimeout 헤더를 포함할 수 있으므로 메시지당 개별 시간 제한 값이 있습니다. requestTimeoutCheckerInterval 옵션도 참조하십시오.

20000

long

requestTimeoutChecker Interval (advanced)

Camel이 JMS를 통해 요청/반복 시 Exchange 시간 초과를 확인하는 빈도를 설정합니다. 기본적으로 Camel은 초당 한 번 확인합니다. 그러나 시간 초과가 발생할 때 더 빠르게 대응해야 하는 경우 이 간격을 낮추어 더 자주 확인할 수 있습니다. 시간 제한은 옵션 requestTimeout에 따라 결정됩니다.

1000

long

transferExchange (advanced)

당신은 단지 바디와 헤더 대신 전선을 통해 교환을 전송할 수 있습니다. 다음 필드가 전송됩니다. 본문, 외부 본문, Fault 본문, 헤더, 외부 헤더, Fault 헤더, 교환 속성, 교환 예외. 이렇게 하려면 개체가 직렬화 가능 해야 합니다.This requires that the objects are serializable. Camel은 non-serializable 오브젝트를 제외하고 WARN 수준에서 로깅합니다. 제작자와 소비자 측에서 이 옵션을 모두 활성화해야 하므로 Camel은 페이로드가 Exchange이고 일반 페이로드가 아닌 Exchange임을 알고 있습니다.

false

boolean

transferException (advanced)

활성화되고 소비자 측면에서 Request Reply messaging(InOut)을 사용하고 Exchange 실패를 사용하는 경우 원인 Exception이 다시 javax.jms.ObjectMessage로 응답으로 다시 전송됩니다. 클라이언트가 Camel인 경우 반환된 Exception은 rethrown입니다. 이를 통해 라우팅에서 Camel JMS를 브리지로 사용할 수 있습니다. 예를 들어 영구 대기열을 사용하여 강력한 라우팅을 활성화할 수 있습니다. 또한 transferExchange를 사용하도록 설정한 경우 이 옵션이 우선합니다. catch 예외는 직렬화 가능 해야 합니다.The caught exception is required to be serializable. 소비자 측의 원래 예외는 생산자로 반환될 때 org.apache.camel.RuntimeCamelException과 같은 외부 예외로 래핑될 수 있습니다.

false

boolean

transferFault (advanced)

활성화된 경우 Request Reply messaging (InOut)을 사용하고 Exchange가 소비자 측에서 SOAP 오류 ( exception 아님)와 함께 실패한 경우 Message#isFault()의 오류 플래그는 키 org.apache.camel.component.jmsConstel.jms.JmsConstants.jmsConstants.jmsConstants.jmsConstants#FATRANTER_FATRANTER_FATRANTER_JMST_TRANTER_FATER_JMS_TRANTER_FATERS. JMS 헤더로 다시 전송될 것입니다. 클라이언트가 Camel인 경우 반환된 fault 플래그가 org.apache.camel.Message#setFault(boolean)에 설정됩니다. Cxf 또는 Spring-ws와 같은 SOAP과 같은 결함을 지원하는 Camel 구성 요소를 사용할 때 이를 활성화할 수 있습니다.

false

boolean

jmsOperations (advanced)

org.springframework.jms.core.JmsOperations 인터페이스의 자체 구현을 사용할 수 있습니다. Camel은 JmsTemplate을 기본값으로 사용합니다. 테스트 목적으로 사용할 수 있지만 스프링 API 문서에 명시된 대로 많이 사용되지는 않습니다.

 

JmsOperations

destinationResolver (advanced)

고유한 확인자를 사용할 수 있는 플러그형 org.springframework.jms.support.DestinationResolver(예: JNDI 레지스트리에서 실제 대상을 조회하기 위해).

 

DestinationResolver

replyToType (producer)

를 사용하면 JMS를 통해 요청/reply를 수행할 때 replyTo 큐에 사용할 유형의 전략을 명시적으로 지정할 수 있습니다. 가능한 값은 임시, 공유 또는 제외입니다. 기본적으로 Camel은 임시 대기열을 사용합니다. 그러나 replyTo가 구성된 경우 기본적으로 Shared가 사용됩니다. 이 옵션을 사용하면 공유 대기열 대신 전용 대기열을 사용할 수 있습니다. 자세한 내용은 Camel JMS 설명서를 참조하십시오. 특히 클러스터형 환경에서 실행 중인 경우 미치는 영향에 대한 참고 사항 및 공유 응답 대기열이 대체 시간 및 필수 값보다 성능이 낮다는 사실에서 참조하십시오.

 

ReplyToType

preserveMessageQos (producer)

JMS 끝점의 QoS 설정이 아니라 메시지에 지정된 QoS 설정을 사용하여 메시지를 보내려면 true로 설정합니다. 다음 세 가지 헤더는 JMSPriority, JMSDeliveryMode 및 JMSExpiration으로 간주됩니다. 전부 또는 일부만 제공할 수 있습니다. 제공되지 않는 경우 Camel은 엔드포인트의 값을 사용하도록 대체합니다. 따라서 이 옵션을 사용하면 헤더가 끝점의 값을 재정의합니다. 반면 explicitQosEnabled 옵션은 메시지 헤더의 값이 아닌 끝점에 설정된 옵션만 사용합니다.

false

boolean

asyncConsumer (Consumer)

JmsConsumer가 Exchange를 비동기적으로 처리하는지 여부입니다. 활성화된 경우 JmsConsumer는 이전 메시지가 비동기적으로(Asynchronous Routing Engine에 의해) 비동기적으로 처리되는 동안 JMS 대기열에서 다음 메시지를 선택할 수 있습니다. 즉, 메시지가 100% 엄격하게 정렬되어 처리되지 않을 수 있습니다. 비활성화된 경우 Exchange는 JmsConsumer가 JMS 대기열에서 다음 메시지를 선택하기 전에 완전히 처리됩니다. 트랜잭션이 활성화된 경우 트랜잭션이 동기적으로 실행되어야 하므로 비동기Consumer=true가 비동기적으로 실행되지 않습니다(Camel 3.0은 비동기 트랜잭션을 지원할 수 있음).

false

boolean

allownullBody (producer)

본문 없이 메시지를 보낼 수 있는지 여부입니다. 이 옵션이 false이고 메시지 본문이 null이면 JMSException이 발생합니다.

true

boolean

includeSentJMS MessageID (producer)

InOnly(예: fire 및 forget)를 사용하여 JMS 대상으로 보낼 때만 적용됩니다. 이 옵션을 사용하면 메시지가 JMS 대상으로 전송될 때 JMS 클라이언트에서 사용하는 실제 JMSMessageID로 Camel Exchange가 강화됩니다.

false

boolean

include allJMSX Properties (advanced)

JMS에서 Camel Message로 매핑할 때 모든 JMSXxxx 속성을 포함할지 여부입니다. 이 값을 true로 설정하면 JMSXAppID 및 JMSXUserID 등과 같은 속성이 포함됩니다. 참고: 사용자 지정 headerFilterStrategy를 사용하는 경우 이 옵션이 적용되지 않습니다.

false

boolean

defaultTaskExecutor 유형 (consumer)

소비자 끝점과 생산자 끝점의 ReplyTo 소비자 모두에 대해 DefaultMessageListenerContainer에서 사용할 기본 TaskExecutor 유형을 지정합니다. 가능한 값: SimpleAsync (SAP의 SimpleAsyncTaskExecutor) 또는 ThreadPool (s Spring의 ThreadPoolTaskExecutor 사용) - 캐시된 threadpool-like입니다. 설정하지 않으면 기본적으로 소비자 엔드포인트에 대해 캐시된 스레드 풀을 사용하고 응답 소비자에게 SimpleAsync를 사용하는 이전 동작으로 설정됩니다. ThreadPool은 동적으로 늘어나고 동시 소비자를 줄이는 탄력적 구성의 스레드 쓰레기를 줄이는 것이 좋습니다.

 

DefaultTaskExecutor Type

jmsKeyFormatStrategy (advanced)

JMS 사양을 준수하는 데 사용할 수 있도록 JMS 키를 인코딩 및 디코딩하는 플러그인 전략입니다. Camel은 기본 및 패스스루의 두 가지 구현을 제공합니다. 기본 전략은 점과 하이픈을 안전하게 마샬링합니다(. 및 -). 통과 전략은 다음과 같이 키를 남겨 둡니다. JMS 헤더 키에 불법 문자가 포함되어 있는지 여부를 고려하지 않는 JMS 브로커에 사용할 수 있습니다. org.apache.camel.component.jms.JmsKeyFormatStrategy의 자체 구현을 제공하고 # 표기법을 사용하여 참조할 수 있습니다.

 

JmsKeyFormatStrategy

additional Headers(producer) 허용

이 옵션은 JMS 사양에 따라 유효하지 않은 값이 있을 수 있는 추가 헤더를 허용하는 데 사용됩니다. 예를 들어 WMQ와 같은 일부 메시지 시스템은 바이트 배열 또는 기타 잘못된 유형의 값이 포함된 접두사 JMS_IBM_MQMD_를 사용하여 헤더 이름으로 이 작업을 수행합니다. 여러 헤더 이름을 쉼표로 구분하여 지정하고 와일드카드 일치에 접미사로 사용할 수 있습니다.

 

문자열

queueBrowseStrategy (advanced)

큐를 탐색할 때 사용자 정의 QueueBrowseStrategy 사용

 

QueueBrowseStrategy

messageCreatedStrategy (advanced)

Camel이 JMS 메시지를 보낼 때 Camel이 javax.jms.Message 오브젝트의 새 인스턴스를 생성할 때 호출되는 지정된 MessageCreatedStrategy를 사용합니다.

 

MessageCreatedStrategy

waitForrelationToBeUpdated Counter (advanced)

JMS를 통해 요청/응답할 때 및 useMessageIDAsCorrelationID 옵션이 활성화된 경우 provisional correlation id가 실제 상관 관계 ID로 업데이트될 때까지 대기하는 횟수입니다.

50

int

waitForrelationToBeUpdated ThreadSleepingTime (advanced)

프로비저닝 상관 ID가 업데이트될 때까지 기다리는 동안 밀리코어가 잠기지 않는 간격입니다.

100

long

correlationProperty (producer)

이 JMS 속성을 사용하여 JMSCorrelationID 속성 대신 InOut exchange 패턴(request-reply) 메시지의 상관 관계를 유지할 수 있습니다. 이렇게 하면 JMSCorrelationID JMS 속성을 사용하여 메시지의 상관 관계가 없는 시스템과 메시지를 교환할 수 있습니다. 사용된 JMSCorrelationID는 Camel에 의해 사용되거나 설정되지 않습니다. 이 속성의 값은 동일한 이름의 메시지 헤더에 제공되지 않는 경우 생성됩니다.

 

문자열

SubscriptionDurable (consumer)

서브스크립션의 내구성을 유지할지 여부를 설정합니다. 사용할 내구성 서브스크립션 이름은 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 사용 가능한 서브스크립션을 등록하려면 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 주제(pub-sub 도메인)를 청취할 때만 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다.

false

boolean

subscriptionShared (consumer)

서브스크립션을 공유할지 여부를 설정합니다. 사용할 공유 서브스크립션 이름은 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 공유 서브스크립션을 등록하려면 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 공유 서브스크립션도 내구성이 있을 수 있으므로 이 플래그도 subscriptionDurable과 결합될 수 있습니다. 주제(pub-sub 도메인)를 청취할 때만 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다. JMS 2.0 호환 메시지 브로커가 필요합니다.

false

boolean

subscriptionName (consumer)

생성할 서브스크립션의 이름을 설정합니다. 공유 또는 내구성이 있는 주제(pub-sub 도메인)의 경우 적용됩니다. 서브스크립션 이름은 이 클라이언트의 JMS 클라이언트 ID 내에서 고유해야 합니다. 기본값은 지정된 메시지 리스너의 클래스 이름입니다. 참고: JMS 2.0이 필요한 공유 서브스크립션을 제외하고 각 서브스크립션에 대해 1개의 동시 소비자(이 기본값은 이 메시지 리스너 컨테이너)만 허용됩니다.

 

문자열

streamMessageType Enabled (producer)

StreamMessage 유형이 활성화되어 있는지 여부를 설정합니다. 파일, InputStream 등과 같은 스트리밍 종류의 메시지 페이로드는 BytesMessage 또는 StreamMessage로 전송됩니다. 이 옵션은 사용할 유형을 제어합니다. 기본적으로 BytesMessage는 전체 메시지 페이로드를 메모리로 읽어오도록 적용하는 데 사용됩니다. 이 옵션을 활성화하면 메시지 페이로드가 청크의 메모리에 판독되고 각 청크는 더 이상 데이터가 없을 때까지 StreamMessage에 작성됩니다.

false

boolean

formatDateHeadersTo Iso8601 (producer)

ISO 8601 표준에 따라 날짜 헤더를 포맷해야 하는지 여부를 설정합니다.

false

boolean

headerFilterStrategy (filter)

사용자 지정 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로 헤더를 필터링하려면 다음을 수행합니다.

 

HeaderFilterStrategy

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AMQP 엔드포인트는 URI 구문을 사용하여 구성됩니다.

amqp:destinationType:destinationName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

5.2.1. 경로 매개 변수(2 매개변수):

Expand
이름설명기본값유형

destinationType

사용할 대상의 종류

queue

문자열

destinationName

대상으로 사용할 큐 또는 항목의 이름입니다.The name of the queue or topic to use as destination

 

문자열

5.2.2. 쿼리 매개변수(92 매개변수):

Expand
이름설명기본값유형

clientID( 일반)

사용할 JMS 클라이언트 ID를 설정합니다. 이 값은 지정된 경우 고유해야 하며 단일 JMS 연결 인스턴스에서만 사용할 수 있습니다. 일반적으로 내구성 주제 서브스크립션에만 필요합니다. Apache ActiveMQ를 사용하는 경우 대신 가상 주제를 사용할 수 있습니다.

 

문자열

ConnectionFactory (일반)

사용할 연결 팩토리입니다. 구성 요소 또는 끝점에서 연결 팩토리를 구성해야 합니다.

 

ConnectionFactory

disableReplyTo (common)

Camel이 메시지의 JMSReplyTo 헤더를 무시할지 여부를 지정합니다. true인 경우 Camel은 JMSReplyTo 헤더에 지정된 대상으로 회신을 다시 보내지 않습니다. Camel을 경로에서 사용하고 Camel이 자동으로 응답 메시지를 처리하므로 응답 메시지를 처리하도록 하려면 이 옵션을 사용할 수 있습니다. Camel을 다른 메시지 브로커 간에 프록시로 사용하고 한 시스템에서 다른 시스템으로 메시지를 라우팅하려는 경우에도 이 옵션을 사용할 수 있습니다.

false

boolean

durableSubscriptionName (common)

내구성 주제 서브스크립션을 지정하기 위한 내구성 있는 구독자 이름입니다. clientId 옵션도 구성해야 합니다.

 

문자열

jmsMessageType (common)

JMS 메시지를 전송하기 위해 특정 javax.jms.Message 구현을 강제로 사용할 수 있습니다. 가능한 값은 Bytes, Map, Object, Stream, Text입니다. 기본적으로 Camel은 본문 유형에서 사용할 JMS 메시지 유형을 결정합니다. 이 옵션을 사용하면 지정할 수 있습니다.

 

JmsMessageType

testConnectionOnStartup (일반)

시작 시 연결을 테스트할지 여부를 지정합니다.Specifies whether to test the connection on startup. 이를 통해 Camel이 모든 JMS 소비자가 JMS 브로커에 대한 유효한 연결을 시작하게 합니다. 연결을 허용할 수 없는 경우 Camel은 시작 시 예외를 throw합니다. 이렇게 하면 Camel이 실패한 연결로 시작되지 않습니다. JMS 생산자도 테스트 중입니다.

false

boolean

acknowledgementModeName (consumer)

SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE 중 하나인 JMS 승인 이름

AUTO_ ACKNOWLEDGE

문자열

asyncConsumer (Consumer)

JmsConsumer가 Exchange를 비동기적으로 처리하는지 여부입니다. 활성화된 경우 JmsConsumer는 이전 메시지가 비동기적으로(Asynchronous Routing Engine에 의해) 비동기적으로 처리되는 동안 JMS 대기열에서 다음 메시지를 선택할 수 있습니다. 즉, 메시지가 100% 엄격하게 정렬되어 처리되지 않을 수 있습니다. 비활성화된 경우 Exchange는 JmsConsumer가 JMS 대기열에서 다음 메시지를 선택하기 전에 완전히 처리됩니다. 트랜잭션이 활성화된 경우 트랜잭션이 동기적으로 실행되어야 하므로 비동기Consumer=true가 비동기적으로 실행되지 않습니다(Camel 3.0은 비동기 트랜잭션을 지원할 수 있음).

false

boolean

AutoStartup (consumer)

소비자 컨테이너가 자동으로 시작되어야 하는지 여부를 지정합니다.

true

boolean

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

cacheLevel (consumer)

기본 JMS 리소스의 ID별 캐시 수준을 설정합니다. 자세한 내용은 cacheLevelName 옵션을 참조하십시오.

 

int

cacheLevelName (consumer)

기본 JMS 리소스의 이름으로 캐시 수준을 설정합니다. 가능한 값은 CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE 및 CACHE_SESSION입니다. 기본 설정은 CACHE_AUTO입니다. 자세한 내용은 Spring 문서 및 트랜잭션 캐시 수준을 참조하십시오.

CACHE_AUTO

문자열

concurrentConsumers (consumer)

JMS에서 사용할 때 기본 동시 소비자 수를 지정합니다( JMS를 통한 요청/복제용 아님). 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/응답 시 replyToConcurrentConsumers 옵션은 응답 메시지 리스너에서 동시 소비자 수를 제어하는 데 사용됩니다.

1

int

maxConcurrentConsumers (Consumer)

JMS에서 사용할 때 최대 동시 소비자 수를 지정합니다( JMS를 통한 요청/복제용 아님). 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/응답 시 replyToMaxConcurrentConsumers 옵션은 응답 메시지 리스너에서 동시 소비자 수를 제어하는 데 사용됩니다.

 

int

응답 대상 (consumer)

Message.getJMSReplyTo()의 들어오는 값을 재정의하는 명시적 ReplyTo 대상을 제공합니다.

 

문자열

replyToDeliveryPersistent (consumer)

응답에 대해 기본적으로 영구 전달을 사용할지 여부를 지정합니다.

true

boolean

선택기 (소비자)

사용할 JMS 선택기 설정

 

문자열

SubscriptionDurable (consumer)

서브스크립션의 내구성을 유지할지 여부를 설정합니다. 사용할 내구성 서브스크립션 이름은 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 사용 가능한 서브스크립션을 등록하려면 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 주제(pub-sub 도메인)를 청취할 때만 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다.

false

boolean

subscriptionName (consumer)

생성할 서브스크립션의 이름을 설정합니다. 공유 또는 내구성이 있는 주제(pub-sub 도메인)의 경우 적용됩니다. 서브스크립션 이름은 이 클라이언트의 JMS 클라이언트 ID 내에서 고유해야 합니다. 기본값은 지정된 메시지 리스너의 클래스 이름입니다. 참고: JMS 2.0이 필요한 공유 서브스크립션을 제외하고 각 서브스크립션에 대해 1개의 동시 소비자(이 기본값은 이 메시지 리스너 컨테이너)만 허용됩니다.

 

문자열

subscriptionShared (consumer)

서브스크립션을 공유할지 여부를 설정합니다. 사용할 공유 서브스크립션 이름은 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 공유 서브스크립션을 등록하려면 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 공유 서브스크립션도 내구성이 있을 수 있으므로 이 플래그도 subscriptionDurable과 결합될 수 있습니다. 주제(pub-sub 도메인)를 청취할 때만 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다. JMS 2.0 호환 메시지 브로커가 필요합니다.

false

boolean

acceptMessages whileeStopping (consumer)

소비자가 중지되는 동안 메시지를 수락하는지 여부를 지정합니다. 대기열에 포함된 메시지가 여전히 있는 동안 런타임에 JMS 경로를 시작하고 중지하는 경우 이 옵션을 활성화할 수 있습니다. 이 옵션이 false이고 JMS 경로를 중지하면 메시지가 거부될 수 있으며 JMS 브로커는 재전송을 시도해야 하지만 다시 거부될 수 있으며 결국 메시지가 JMS 브로커의 dead letter 큐에서 이동될 수 있습니다. 이 옵션을 사용하려면 이 옵션을 사용하는 것이 좋습니다.

false

boolean

allowReplyManagerQuickStop (consumer)

응답 관리자에서 request-reply 메시징에 사용된 DefaultMessageListenerContainer에 사용된지 여부에 따라 JmsConfiguration#isAcceptMessages whileeStopping이 활성화되어 있고 org.apache.camel.CamelContext가 현재 중지된 경우 DefaultMessageListenerContainer.runningAllowed 플래그를 빠르게 중지할 수 있습니다. 이 빠른 중지 기능은 일반 JMS 소비자에서 기본적으로 활성화되어 있지만 응답 관리자를 위해 이 플래그를 활성화해야 합니다.

false

boolean

consumerType (consumer)

사용할 소비자 유형은 Simple, Default 또는 Custom 중 하나일 수 있습니다. 소비자 유형은 사용할 Spring JMS 리스너를 결정합니다. 기본값은 org.springframework.jms.listener.DefaultMessageListenerContainer를 사용하며 Simple은 org.springframework.jms.listener.SimpleMessageListenerContainer를 사용합니다. Custom이 지정되면 messageListenerContainerFactory 옵션에 의해 정의된 MessageListenerContainerFactory는 사용할 org.springframework.jms.listener.AbstractMessageListenerContainer를 결정합니다.

기본값

ConsumerType

defaultTaskExecutorType (consumer)

소비자 끝점과 생산자 끝점의 ReplyTo 소비자 모두에 대해 DefaultMessageListenerContainer에서 사용할 기본 TaskExecutor 유형을 지정합니다. 가능한 값: SimpleAsync (SAP의 SimpleAsyncTaskExecutor) 또는 ThreadPool (s Spring의 ThreadPoolTaskExecutor 사용) - 캐시된 threadpool-like입니다. 설정하지 않으면 기본적으로 소비자 엔드포인트에 대해 캐시된 스레드 풀을 사용하고 응답 소비자에게 SimpleAsync를 사용하는 이전 동작으로 설정됩니다. ThreadPool은 동적으로 늘어나고 동시 소비자를 줄이는 탄력적 구성의 스레드 쓰레기를 줄이는 것이 좋습니다.

 

DefaultTaskExecutor Type

eagerLoadingOfProperties (consumer)

메시지가 로드되는 즉시 JMS 속성 및 페이로드를 신속하게 로드할 수 있습니다. 이 경우 JMS 속성이 필요하지 않기 때문에 일반적으로 비효율적일 수 있지만 기본 JMS 공급자 및 JMS 속성의 사용 문제를 조기에 포착할 수 있습니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

exposeListenerSession (consumer)

메시지를 사용할 때 리스너 세션을 노출해야 하는지 여부를 지정합니다.

false

boolean

replyToSameDestination Allowed (consumer)

JMS 소비자가 소비자가 사용할 때 사용하는 것과 동일한 대상으로 응답 메시지를 보낼 수 있는지 여부입니다. 이를 통해 무한 루프를 사용하지 않도록 하고 동일한 메시지를 자체에 보냅니다.This prevents an endless loop by consuming and sending back the same message to itself.

false

boolean

taskExecutor (consumer)

메시지를 사용하기 위한 사용자 지정 작업 executor를 지정할 수 있습니다.

 

TaskExecutor

deliveryDelay (producer)

JMS에 대한 전송 호출에 사용할 전달 지연을 설정합니다. 이 옵션에는 JMS 2.0 호환 브로커가 필요합니다.

-1

long

deliveryMode (producer)

사용할 전달 모드를 지정합니다. 가능한 값은 javax.jms.DeliveryMode에서 정의한 값입니다. NON_PERSISTENT = 1 및 PERSISTENT = 2.

 

정수

deliveryPersistent (producer)

기본적으로 영구 제공이 사용되는지 여부를 지정합니다.

true

boolean

explicitQosEnabled (producer)

메시지를 보낼 때 서비스의 deliveryMode, 우선순위 또는 timeToLive 특성을 사용해야 하는 경우 설정합니다. 이 옵션은 Spring의 JmsTemplate을 기반으로 합니다. deliveryMode, priority 및 timeToLive 옵션이 현재 엔드포인트에 적용됩니다. 이는 메시지 세분화에서 작동하는 preserveMessageQos 옵션과 달리 Camel In 메시지 헤더에서만 QoS 속성을 읽습니다.

false

부울

formatDateHeadersToIso8601 (producer)

ISO 8601 표준에 따라 JMS 날짜 속성을 포맷해야 하는지 여부를 설정합니다.

false

boolean

preserveMessageQos (producer)

JMS 끝점의 QoS 설정이 아니라 메시지에 지정된 QoS 설정을 사용하여 메시지를 보내려면 true로 설정합니다. 다음 세 가지 헤더는 JMSPriority, JMSDeliveryMode 및 JMSExpiration으로 간주됩니다. 전부 또는 일부만 제공할 수 있습니다. 제공되지 않는 경우 Camel은 엔드포인트의 값을 사용하도록 대체합니다. 따라서 이 옵션을 사용하면 헤더가 끝점의 값을 재정의합니다. 반면 explicitQosEnabled 옵션은 메시지 헤더의 값이 아닌 끝점에 설정된 옵션만 사용합니다.

false

boolean

우선 순위 (producer)

1보다 큰 값은 보낼 때 메시지 우선 순위를 지정합니다(여기서 0이 가장 낮은 우선 순위이고 9가 가장 높은 경우). 이 옵션을 적용하려면 explicitQosEnabled 옵션도 활성화해야 합니다.

4

int

replyToConcurrentConsumers (producer)

JMS를 통해 요청/reply를 수행할 때 기본 동시 소비자 수를 지정합니다. 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오.

1

int

replyToMaxConcurrent Consumers (producer)

JMS에서 요청/reply를 사용할 때 최대 동시 소비자 수를 지정합니다. 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오.

 

int

replyToOnTimeoutMax ConcurrentConsumers (producer)

JMS를 통해 요청/reply를 사용할 때 시간 초과가 발생한 경우 계속 라우팅할 수 있는 최대 동시 소비자 수를 지정합니다.

1

int

replyToOverride (producer)

JMS 메시지에서 명시적 ReplyTo 대상을 제공하여 replyTo 설정을 재정의합니다. 메시지를 원격 대기열로 전달하고 ReplyTo 대상에서 응답 메시지를 수신하려는 경우 유용합니다.

 

문자열

replyToType (producer)

를 사용하면 JMS를 통해 요청/reply를 수행할 때 replyTo 큐에 사용할 유형의 전략을 명시적으로 지정할 수 있습니다. 가능한 값은 임시, 공유 또는 제외입니다. 기본적으로 Camel은 임시 대기열을 사용합니다. 그러나 replyTo가 구성된 경우 기본적으로 Shared가 사용됩니다. 이 옵션을 사용하면 공유 대기열 대신 전용 대기열을 사용할 수 있습니다. 자세한 내용은 Camel JMS 설명서를 참조하십시오. 특히 클러스터형 환경에서 실행 중인 경우 미치는 영향에 대한 참고 사항 및 공유 응답 대기열이 대체 시간 및 필수 값보다 성능이 낮다는 사실에서 참조하십시오.

 

ReplyToType

requestTimeout (producer)

InOut Exchange Pattern(밀리초)을 사용할 때 응답을 기다리는 시간 초과입니다. 기본값은 20초입니다. 이 엔드포인트 구성 시간 값을 재정의하기 위해 CamelJmsRequestTimeout 헤더를 포함할 수 있으므로 메시지당 개별 시간 제한 값이 있습니다. requestTimeoutCheckerInterval 옵션도 참조하십시오.

20000

long

TimeToLive (producer)

메시지를 보낼 때 메시지의 TTL(밀리초)을 지정합니다.

-1

long

additional Headers(producer) 허용

이 옵션은 JMS 사양에 따라 유효하지 않은 값이 있을 수 있는 추가 헤더를 허용하는 데 사용됩니다. 예를 들어 WMQ와 같은 일부 메시지 시스템은 바이트 배열 또는 기타 잘못된 유형의 값이 포함된 접두사 JMS_IBM_MQMD_를 사용하여 헤더 이름으로 이 작업을 수행합니다. 여러 헤더 이름을 쉼표로 구분하여 지정하고 와일드카드 일치에 접미사로 사용할 수 있습니다.

 

문자열

allownullBody (producer)

본문 없이 메시지를 보낼 수 있는지 여부입니다. 이 옵션이 false이고 메시지 본문이 null이면 JMSException이 발생합니다.

true

boolean

alwaysCopyMessage (producer)

true인 경우 Camel은 전송을 위해 생산자에 전달될 때 항상 메시지의 JMS 메시지 사본을 만듭니다. replyToDestinationSelectorName이 설정된 경우와 같이 메시지를 복사하는 데 필요한 경우 Camel은 replyToDestinationSelectorName이 설정된 경우 alwaysCopyMessage 옵션을 true로 설정합니다.

false

boolean

correlationProperty (producer)

InOut 교환 패턴을 사용하는 경우 JMSCorrelationID JMS 속성 대신 이 JMS 속성을 사용하여 메시지를 서로 연관시킵니다. 설정 메시지가 이 속성의 값에만 상관되는 경우 JMSCorrelationID 속성은 무시되고 Camel에 의해 설정되지 않습니다.

 

문자열

disableTimeToLive (producer)

이 옵션을 사용하여 실행 중인 시간을 강제 비활성화하십시오. 예를 들어 JMS를 요청/재정하는 경우 Camel은 기본적으로 requestTimeout 값을 전송 중인 메시지 라이브 시간으로 사용합니다. 문제는 발신자와 수신자 시스템이 시계를 동기화해야 하므로 시계가 동기화되어 있다는 것입니다. 항상 압축하기가 쉽지는 않습니다. so you can use disableTimeToLive=true to not set a time to live value on the sent message. 그러면 메시지가 수신자 시스템에서 만료되지 않습니다. 자세한 내용은 아래 섹션을 참조하십시오.

false

boolean

forceSendOriginalMessage (producer)

mapJmsMessage=false Camel을 사용하면 경로 중 헤더를 만났을 때 새 JMS 대상에 보낼 새 JMS 메시지가 생성됩니다. 수신한 원래 JMS 메시지를 전송하도록 Camel을 강제 적용하려면 이 옵션을 true로 설정합니다.

false

boolean

includeSentJMSMessageID (producer)

InOnly(예: fire 및 forget)를 사용하여 JMS 대상으로 보낼 때만 적용됩니다. 이 옵션을 사용하면 메시지가 JMS 대상으로 전송될 때 JMS 클라이언트에서 사용하는 실제 JMSMessageID로 Camel Exchange가 강화됩니다.

false

boolean

replyToCacheLevelName (producer)

JMS를 통해 요청/반복을 수행할 때 응답 소비자의 이름으로 캐시 수준을 설정합니다. 이 옵션은 고정 응답 대기열(임시 아님)을 사용하는 경우에만 적용됩니다. Camel은 기본적으로 배타적 또는 공유 w/ replyToSelectorName에 대해 CACHE_CONSUMER를 사용합니다. 그리고 replyToSelectorName 없이 공유의 경우 CACHE_SESSION을 사용합니다. IBM WebSphere와 같은 일부 JMS 브로커는 작동하도록 replyToCacheLevelName=CACHE_NONE을 설정해야 할 수 있습니다. 참고: 임시 대기열을 사용하는 경우 CACHE_NONE이 허용되지 않으며 CACHE_CONSUMER 또는 CACHE_SESSION과 같은 더 높은 값을 사용해야 합니다.

 

문자열

replyToDestinationSelector 이름 (producer)

공유 대기열을 사용할 때(즉, 임시 응답 대기열을 사용하지 않는 경우) 다른 이름에서 자체 응답을 필터링할 수 있도록 사용할 고정 이름을 사용하여 JMS Selector를 설정합니다.

 

문자열

streamMessageTypeEnabled (producer)

StreamMessage 유형이 활성화되어 있는지 여부를 설정합니다. 파일, InputStream 등과 같은 스트리밍 종류의 메시지 페이로드는 BytesMessage 또는 StreamMessage로 전송됩니다. 이 옵션은 사용할 유형을 제어합니다. 기본적으로 BytesMessage는 전체 메시지 페이로드를 메모리로 읽어오도록 적용하는 데 사용됩니다. 이 옵션을 활성화하면 메시지 페이로드가 청크의 메모리에 판독되고 각 청크는 더 이상 데이터가 없을 때까지 StreamMessage에 작성됩니다.

false

boolean

allowSerializedHeaders (advanced)

직렬화된 헤더를 포함할지 여부를 제어합니다. 이는 transferExchange가 true인 경우에만 적용됩니다. 이렇게 하려면 개체가 직렬화 가능 해야 합니다.This requires that the objects are serializable. Camel은 non-serializable 오브젝트를 제외하고 WARN 수준에서 로깅합니다.

false

boolean

asyncStartListener (advanced)

경로를 시작할 때 JmsConsumer 메시지 리스너를 비동기적으로 시작할지 여부입니다. 예를 들어 JmsConsumer가 원격 JMS 브로커에 대한 연결을 가져올 수 없는 경우 재시도 및/또는 페일오버를 시도하는 동안 차단될 수 있습니다. 이로 인해 Camel이 경로를 시작하는 동안 차단됩니다. 이 옵션을 true로 설정하면 JmsConsumer가 비동기 모드에서 전용 스레드를 사용하여 JMS 브로커에 연결하는 동안 시작 경로를 지정할 수 있습니다. 이 옵션을 사용하면 연결을 설정할 수 없는 경우 예외가 WARN 수준에서 기록되고 소비자는 메시지를 수신할 수 없습니다. 그런 다음 다시 시도하도록 경로를 다시 시작할 수 있습니다.

false

boolean

asyncStopListener (advanced)

경로를 중지할 때 JmsConsumer 메시지 리스너를 비동기적으로 중지할지 여부입니다.

false

boolean

destinationResolver (advanced)

고유한 확인자를 사용할 수 있는 플러그형 org.springframework.jms.support.DestinationResolver(예: JNDI 레지스트리에서 실제 대상을 조회하기 위해).

 

DestinationResolver

errorHandler (advanced)

메시지를 처리하는 동안 throw되지 않은 예외의 경우 호출될 org.springframework.util.ErrorHandler를 지정합니다. 기본적으로 이러한 예외는 errorHandler가 구성되지 않은 경우 WARN 수준에서 기록됩니다. 로깅 수준 및 스택 추적을 errorHandlerLoggingLevel 및 errorHandlerLogStackTrace 옵션을 사용하여 기록해야 하는지 여부를 구성할 수 있습니다. 이렇게 하면 사용자 지정 오류 처리기를 코딩하는 것보다 훨씬 쉽게 구성할 수 있습니다.This makes it much easier to configure, than having to code a custom errorHandler.

 

ErrorHandler

exceptionListener (advanced)

기본 JMS 예외에 대해 알림을 받을 JMS Exception Listener를 지정합니다.

 

ExceptionListener

headerFilterStrategy (advanced)

사용자 지정 HeaderFilterStrategy를 사용하여 Camel 메시지와의 헤더를 필터링합니다.

 

HeaderFilterStrategy

idleConsumerLimit (advanced)

언제든지 유휴 상태일 수 있는 소비자 수에 대한 제한을 지정합니다.

1

int

idleTaskExecutionLimit (advanced)

수신 작업의 유휴 실행에 대한 제한을 지정하고 해당 실행 내에 메시지를 받지 못했습니다. 이 제한에 도달하면 작업이 종료되고 다른 실행 작업에 대한 수신을 그대로 둡니다(동적 스케줄링의 경우 maxConcurrentConsumers 설정을 참조). Spring에서 사용할 수 있는 추가 doc가 있습니다.

1

int

includeAllJMSXProperties (advanced)

JMS에서 Camel Message로 매핑할 때 모든 JMSXxxx 속성을 포함할지 여부입니다. 이 값을 true로 설정하면 JMSXAppID 및 JMSXUserID 등과 같은 속성이 포함됩니다. 참고: 사용자 지정 headerFilterStrategy를 사용하는 경우 이 옵션이 적용되지 않습니다.

false

boolean

jmsKeyFormatStrategy (advanced)

JMS 사양을 준수하는 데 사용할 수 있도록 JMS 키를 인코딩 및 디코딩하는 플러그인 전략입니다. Camel은 기본 및 패스스루의 두 가지 구현을 제공합니다. 기본 전략은 점과 하이픈을 안전하게 마샬링합니다(. 및 -). 통과 전략은 다음과 같이 키를 남겨 둡니다. JMS 헤더 키에 불법 문자가 포함되어 있는지 여부를 고려하지 않는 JMS 브로커에 사용할 수 있습니다. org.apache.camel.component.jms.JmsKeyFormatStrategy의 자체 구현을 제공하고 # 표기법을 사용하여 참조할 수 있습니다.

 

문자열

mapJmsMessage (advanced)

Camel이 수신된 JMS 메시지를 javax.jms.TextMessage와 같은 적절한 페이로드 유형에 자동 매핑해야 하는지 여부를 문자열 등에 지정합니다.

true

boolean

maxMessagesPerTask (advanced)

작업당 메시지 수입니다. -1은 무제한입니다. 동시 소비자에 범위(예: max)를 사용하는 경우 이 옵션을 사용하여 더 적은 작업이 필요할 때 소비자의 속도를 축소하는 방법을 제어하기 위해 값을 100으로 설정할 수 있습니다.

-1

int

messageConverter (advanced)

사용자 지정 Spring org.springframework.jms.support.converter.MessageConverter를 사용하려면 javax.jms.Message에 매핑할 수 있는 방법을 제어할 수 있습니다.

 

MessageConverter

messageCreatedStrategy (advanced)

Camel이 JMS 메시지를 보낼 때 Camel이 javax.jms.Message 오브젝트의 새 인스턴스를 생성할 때 호출되는 지정된 MessageCreatedStrategy를 사용합니다.

 

MessageCreatedStrategy

messageIdEnabled (advanced)

전송할 때 메시지 ID를 추가해야 하는지 여부를 지정합니다. 이는 JMS 브로커에 대한 힌트일 뿐입니다. JMS 공급자가 이 힌트를 수락하는 경우 이러한 메시지에는 메시지 ID가 null로 설정되어야 합니다. 공급자가 힌트를 무시하는 경우 메시지 ID를 일반 고유 값으로 설정해야 합니다.

true

boolean

messageListenerContainer Factory (advanced)

메시지를 사용하는 데 사용할 org.springframework.jms.listener.AbstractMessageListenerContainer를 결정하는 데 사용되는 MessageListenerContainer의 레지스트리 ID입니다. 이를 설정하면 consumerType이 Custom으로 자동 설정됩니다.

 

MessageListener ContainerFactory

messageTimestampEnabled (advanced)

메시지 전송 시 기본적으로 타임스탬프를 활성화할지 여부를 지정합니다. 이는 JMS 브로커에 대한 힌트일 뿐입니다. JMS 공급자가 이 힌트를 수락하는 경우 이러한 메시지에는 타임스탬프가 0으로 설정되어야 합니다. 공급자가 힌트를 무시하면 타임스탬프를 정규 값으로 설정해야 합니다.

true

boolean

pubSubNoLocal (advanced)

자체 연결에서 게시한 메시지 배달을 금지할지 여부를 지정합니다.Specifies whether to inhibit the delivery of messages published by its own connection.

false

boolean

receiveTimeout (advanced)

메시지 수신 시간(밀리초)입니다.

1000

long

복구Interval (advanced)

연결이 새로 고쳐질 때(즉, 밀리초) 복구 시도 사이의 간격을 지정합니다. 기본값은 5000ms, 즉 5초입니다.

5000

long

requestTimeoutChecker Interval (advanced)

Camel이 JMS를 통해 요청/반복 시 Exchange 시간 초과를 확인하는 빈도를 설정합니다. 기본적으로 Camel은 초당 한 번 확인합니다. 그러나 시간 초과가 발생할 때 더 빠르게 대응해야 하는 경우 이 간격을 낮추어 더 자주 확인할 수 있습니다. 시간 제한은 옵션 requestTimeout에 따라 결정됩니다.

1000

long

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

transferException (advanced)

활성화되고 소비자 측면에서 Request Reply messaging(InOut)을 사용하고 Exchange 실패를 사용하는 경우 원인 Exception이 다시 javax.jms.ObjectMessage로 응답으로 다시 전송됩니다. 클라이언트가 Camel인 경우 반환된 Exception은 rethrown입니다. 이를 통해 라우팅에서 Camel JMS를 브리지로 사용할 수 있습니다. 예를 들어 영구 대기열을 사용하여 강력한 라우팅을 활성화할 수 있습니다. 또한 transferExchange를 사용하도록 설정한 경우 이 옵션이 우선합니다. catch 예외는 직렬화 가능 해야 합니다.The caught exception is required to be serializable. 소비자 측의 원래 예외는 생산자로 반환될 때 org.apache.camel.RuntimeCamelException과 같은 외부 예외로 래핑될 수 있습니다.

false

boolean

transferExchange (advanced)

당신은 단지 바디와 헤더 대신 전선을 통해 교환을 전송할 수 있습니다. 다음 필드가 전송됩니다. 본문, 외부 본문, Fault 본문, 헤더, 외부 헤더, Fault 헤더, 교환 속성, 교환 예외. 이렇게 하려면 개체가 직렬화 가능 해야 합니다.This requires that the objects are serializable. Camel은 non-serializable 오브젝트를 제외하고 WARN 수준에서 로깅합니다. 제작자와 소비자 측에서 이 옵션을 모두 활성화해야 하므로 Camel은 페이로드가 Exchange이고 일반 페이로드가 아닌 Exchange임을 알고 있습니다.

false

boolean

transferFault (advanced)

활성화된 경우 Request Reply messaging (InOut)을 사용하고 Exchange가 소비자 측에서 SOAP 오류 ( exception 아님)와 함께 실패한 경우 Message#isFault()의 오류 플래그는 키 org.apache.camel.component.jmsConstel.jms.JmsConstants.jmsConstants.jmsConstants.jmsConstants#FATRANTER_FATRANTER_FATRANTER_JMST_TRANTER_FATER_JMS_TRANTER_FATERS. JMS 헤더로 다시 전송될 것입니다. 클라이언트가 Camel인 경우 반환된 fault 플래그가 org.apache.camel.Message#setFault(boolean)에 설정됩니다. Cxf 또는 Spring-ws와 같은 SOAP과 같은 결함을 지원하는 Camel 구성 요소를 사용할 때 이를 활성화할 수 있습니다.

false

boolean

useMessageIDAsCorrelation ID (advanced)

JMSMessageID를 항상 InOut 메시지의 JMSCorrelationID로 사용할지 여부를 지정합니다.

false

boolean

waitForProvisionCorrelation ToBeUpdatedCounter (advanced)

JMS를 통해 요청/응답할 때 및 useMessageIDAsCorrelationID 옵션이 활성화된 경우 provisional correlation id가 실제 상관 관계 ID로 업데이트될 때까지 대기하는 횟수입니다.

50

int

waitForProvisionCorrelation ToBeUpdatedThreadSleeping Time (advanced)

프로비저닝 상관 ID가 업데이트될 때까지 기다리는 동안 밀리코어가 잠기지 않는 간격입니다.

100

long

errorHandlerLoggingLevel (logging)

은 로깅되지 않은 예외에 대해 기본 errorHandler 로깅 수준을 구성할 수 있습니다.

WARN

LoggingLevel

errorHandlerLogStackTrace (logging)

기본 errorHandler로 stacktrace를 기록해야 하는지 여부를 제어할 수 있습니다.

true

boolean

암호 (보안)

ConnectionFactory에 사용할 암호입니다. ConnectionFactory에서 사용자 이름/암호를 직접 구성할 수도 있습니다.

 

문자열

사용자 이름 (보안)

ConnectionFactory와 함께 사용할 사용자 이름입니다. ConnectionFactory에서 사용자 이름/암호를 직접 구성할 수도 있습니다.

 

문자열

트랜잭션(Transaction acted )

transacted 모드를 사용할지 여부를 지정합니다.

false

boolean

lazyCreateTransaction Manager (transaction)

true인 경우 Camel은 옵션을 transacted=true할 때 삽입된 transactionManager가 없는 경우 JmsTransactionManager를 생성합니다.

true

boolean

TransactionManager (transaction)

사용할 Spring 트랜잭션 관리자입니다.

 

PlatformTransaction Manager

transactionName (transaction)

사용할 트랜잭션의 이름입니다.

 

문자열

TransactionTimeout (transaction)

트랜잭션 모드를 사용하는 경우 트랜잭션의 시간 초과 값(초 단위)입니다.

-1

int

5.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 81 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.amqp.accept-messages-while-stopping

소비자가 중지되는 동안 메시지를 수락하는지 여부를 지정합니다. 대기열에 포함된 메시지가 여전히 있는 동안 런타임에 JMS 경로를 시작하고 중지하는 경우 이 옵션을 활성화할 수 있습니다. 이 옵션이 false이고 JMS 경로를 중지하면 메시지가 거부될 수 있으며 JMS 브로커는 재전송을 시도해야 하지만 다시 거부될 수 있으며 결국 메시지가 JMS 브로커의 dead letter 큐에서 이동될 수 있습니다. 이 옵션을 사용하려면 이 옵션을 사용하는 것이 좋습니다.

false

부울

camel.component.amqp.acknowledgement-mode

Integer로 정의된 JMS 승인 모드입니다. 벤더별 확장을 acknowledgment 모드로 설정할 수 있습니다. 일반 모드에서는 acknowledgementModeName을 대신 사용하는 것이 좋습니다.

 

정수

camel.component.amqp.acknowledgement-mode-name

SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE 중 하나인 JMS 승인 이름

AUTO_ ACKNOWLEDGE

문자열

camel.component.amqp.allow-additional-headers

이 옵션은 JMS 사양에 따라 유효하지 않은 값이 있을 수 있는 추가 헤더를 허용하는 데 사용됩니다. 예를 들어 WMQ와 같은 일부 메시지 시스템은 바이트 배열 또는 기타 잘못된 유형의 값이 포함된 접두사 JMS_IBM_MQMD_를 사용하여 헤더 이름으로 이 작업을 수행합니다. 여러 헤더 이름을 쉼표로 구분하여 지정하고 와일드카드 일치에 접미사로 사용할 수 있습니다.

 

문자열

camel.component.amqp.allow-null-body

본문 없이 메시지를 보낼 수 있는지 여부입니다. 이 옵션이 false이고 메시지 본문이 null이면 JMSException이 발생합니다.

true

부울

camel.component.amqp.allow-reply-manager-quick-stop

응답 관리자에서 request-reply 메시징에 사용된 DefaultMessageListenerContainer에 사용된지 여부에 따라 JmsConfiguration#isAcceptMessages whileeStopping이 활성화되어 있고 org.apache.camel.CamelContext가 현재 중지된 경우 DefaultMessageListenerContainer.runningAllowed 플래그를 빠르게 중지할 수 있습니다. 이 빠른 중지 기능은 일반 JMS 소비자에서 기본적으로 활성화되어 있지만 응답 관리자를 위해 이 플래그를 활성화해야 합니다.

false

부울

camel.component.amqp.always-copy-message

true인 경우 Camel은 전송을 위해 생산자에 전달될 때 항상 메시지의 JMS 메시지 사본을 만듭니다. replyToDestinationSelectorName이 설정된 경우와 같이 메시지를 복사하는 데 필요한 경우 Camel은 replyToDestinationSelectorName이 설정된 경우 alwaysCopyMessage 옵션을 true로 설정합니다.

false

부울

camel.component.amqp.async-consumer

JmsConsumer가 Exchange를 비동기적으로 처리하는지 여부입니다. 활성화된 경우 JmsConsumer는 이전 메시지가 비동기적으로(Asynchronous Routing Engine에 의해) 비동기적으로 처리되는 동안 JMS 대기열에서 다음 메시지를 선택할 수 있습니다. 즉, 메시지가 100% 엄격하게 정렬되어 처리되지 않을 수 있습니다. 비활성화된 경우 Exchange는 JmsConsumer가 JMS 대기열에서 다음 메시지를 선택하기 전에 완전히 처리됩니다. 트랜잭션이 활성화된 경우 트랜잭션이 동기적으로 실행되어야 하므로 비동기Consumer=true가 비동기적으로 실행되지 않습니다(Camel 3.0은 비동기 트랜잭션을 지원할 수 있음).

false

부울

camel.component.amqp.async-start-listener

경로를 시작할 때 JmsConsumer 메시지 리스너를 비동기적으로 시작할지 여부입니다. 예를 들어 JmsConsumer가 원격 JMS 브로커에 대한 연결을 가져올 수 없는 경우 재시도 및/또는 페일오버를 시도하는 동안 차단될 수 있습니다. 이로 인해 Camel이 경로를 시작하는 동안 차단됩니다. 이 옵션을 true로 설정하면 JmsConsumer가 비동기 모드에서 전용 스레드를 사용하여 JMS 브로커에 연결하는 동안 시작 경로를 지정할 수 있습니다. 이 옵션을 사용하면 연결을 설정할 수 없는 경우 예외가 WARN 수준에서 기록되고 소비자는 메시지를 수신할 수 없습니다. 그런 다음 다시 시도하도록 경로를 다시 시작할 수 있습니다.

false

부울

camel.component.amqp.async-stop-listener

경로를 중지할 때 JmsConsumer 메시지 리스너를 비동기적으로 중지할지 여부입니다.

false

부울

camel.component.amqp.auto-startup

소비자 컨테이너가 자동으로 시작되어야 하는지 여부를 지정합니다.

true

부울

camel.component.amqp.cache-level

기본 JMS 리소스의 ID별 캐시 수준을 설정합니다. 자세한 내용은 cacheLevelName 옵션을 참조하십시오.

 

정수

camel.component.amqp.cache-level-name

기본 JMS 리소스의 이름으로 캐시 수준을 설정합니다. 가능한 값은 CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE 및 CACHE_SESSION입니다. 기본 설정은 CACHE_AUTO입니다. 자세한 내용은 Spring 문서 및 트랜잭션 캐시 수준을 참조하십시오.

CACHE_AUTO

문자열

camel.component.amqp.client-id

사용할 JMS 클라이언트 ID를 설정합니다. 이 값은 지정된 경우 고유해야 하며 단일 JMS 연결 인스턴스에서만 사용할 수 있습니다. 일반적으로 내구성 주제 서브스크립션에만 필요합니다. Apache ActiveMQ를 사용하는 경우 대신 가상 주제를 사용할 수 있습니다.

 

문자열

camel.component.amqp.concurrent-consumers

JMS에서 사용할 때 기본 동시 소비자 수를 지정합니다( JMS를 통한 요청/복제용 아님). 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/응답 시 replyToConcurrentConsumers 옵션은 응답 메시지 리스너에서 동시 소비자 수를 제어하는 데 사용됩니다.

1

정수

camel.component.amqp.configuration

공유 JMS 구성을 사용하려면 다음을 수행합니다. 옵션은 org.apache.camel.component.jms.JmsConfiguration 유형입니다.

 

문자열

camel.component.amqp.connection-factory

사용할 연결 팩토리입니다. 구성 요소 또는 끝점에서 연결 팩토리를 구성해야 합니다. 옵션은 javax.jms.ConnectionFactory 유형입니다.

 

문자열

camel.component.amqp.correlation-property

이 JMS 속성을 사용하여 JMSCorrelationID 속성 대신 InOut exchange 패턴(request-reply) 메시지의 상관 관계를 유지할 수 있습니다. 이렇게 하면 JMSCorrelationID JMS 속성을 사용하여 메시지의 상관 관계가 없는 시스템과 메시지를 교환할 수 있습니다. 사용된 JMSCorrelationID는 Camel에 의해 사용되거나 설정되지 않습니다. 이 속성의 값은 동일한 이름의 메시지 헤더에 제공되지 않는 경우 생성됩니다.

 

문자열

camel.component.amqp.default-task-executor-type

소비자 끝점과 생산자 끝점의 ReplyTo 소비자 모두에 대해 DefaultMessageListenerContainer에서 사용할 기본 TaskExecutor 유형을 지정합니다. 가능한 값: SimpleAsync (SAP의 SimpleAsyncTaskExecutor) 또는 ThreadPool (s Spring의 ThreadPoolTaskExecutor 사용) - 캐시된 threadpool-like입니다. 설정하지 않으면 기본적으로 소비자 엔드포인트에 대해 캐시된 스레드 풀을 사용하고 응답 소비자에게 SimpleAsync를 사용하는 이전 동작으로 설정됩니다. ThreadPool은 동적으로 늘어나고 동시 소비자를 줄이는 탄력적 구성의 스레드 쓰레기를 줄이는 것이 좋습니다.

 

DefaultTaskExecutor Type

camel.component.amqp.delivery-mode

사용할 전달 모드를 지정합니다. 가능한 값은 javax.jms.DeliveryMode에서 정의한 값입니다. NON_PERSISTENT = 1 및 PERSISTENT = 2.

 

정수

camel.component.amqp.delivery-persistent

기본적으로 영구 제공이 사용되는지 여부를 지정합니다.

true

부울

camel.component.amqp.destination-resolver

고유한 확인자를 사용할 수 있는 플러그형 org.springframework.jms.support.DestinationResolver(예: JNDI 레지스트리에서 실제 대상을 조회하기 위해). 옵션은 org.springframework.jms.support.destination.DestinationResolver 유형입니다.

 

문자열

camel.component.amqp.durable-subscription-name

내구성 주제 서브스크립션을 지정하기 위한 내구성 있는 구독자 이름입니다. clientId 옵션도 구성해야 합니다.

 

문자열

camel.component.amqp.eager-loading-of-properties

JMS 속성이 필요하지 않기 때문에 일반적으로 비효율적인 메시지가 로드되는 즉시 JMS 속성을 신속하게 로드할 수 있지만 기본 JMS 공급자 및 JMS 속성 사용과 관련된 문제를 조기에 포착할 수 있습니다.

false

부울

camel.component.amqp.enabled

mqp 구성 요소 활성화

true

부울

camel.component.amqp.error-handler

메시지를 처리하는 동안 throw되지 않은 예외의 경우 호출될 org.springframework.util.ErrorHandler를 지정합니다. 기본적으로 이러한 예외는 errorHandler가 구성되지 않은 경우 WARN 수준에서 기록됩니다. 로깅 수준 및 스택 추적을 errorHandlerLoggingLevel 및 errorHandlerLogStackTrace 옵션을 사용하여 기록해야 하는지 여부를 구성할 수 있습니다. 이렇게 하면 사용자 지정 오류 처리기를 코딩하는 것보다 훨씬 쉽게 구성할 수 있습니다.This makes it much easier to configure, than having to code a custom errorHandler. 옵션은 org.springframework.util.ErrorHandler 유형입니다.

 

문자열

camel.component.amqp.error-handler-log-stack-trace

기본 errorHandler로 stacktrace를 기록해야 하는지 여부를 제어할 수 있습니다.

true

부울

camel.component.amqp.error-handler-logging-level

은 로깅되지 않은 예외에 대해 기본 errorHandler 로깅 수준을 구성할 수 있습니다.

 

LoggingLevel

camel.component.amqp.exception-listener

기본 JMS 예외에 대해 알림을 받을 JMS Exception Listener를 지정합니다. 옵션은 javax.jms.ExceptionListener 유형입니다.

 

문자열

camel.component.amqp.explicit-qos-enabled

메시지를 보낼 때 서비스의 deliveryMode, 우선순위 또는 timeToLive 특성을 사용해야 하는 경우 설정합니다. 이 옵션은 Spring의 JmsTemplate을 기반으로 합니다. deliveryMode, priority 및 timeToLive 옵션이 현재 엔드포인트에 적용됩니다. 이는 메시지 세분화에서 작동하는 preserveMessageQos 옵션과 달리 Camel In 메시지 헤더에서만 QoS 속성을 읽습니다.

false

부울

camel.component.amqp.expose-listener-session

메시지를 사용할 때 리스너 세션을 노출해야 하는지 여부를 지정합니다.

false

부울

camel.component.amqp.force-send-original-message

mapJmsMessage=false Camel을 사용하면 경로 중 헤더를 만났을 때 새 JMS 대상에 보낼 새 JMS 메시지가 생성됩니다. 수신한 원래 JMS 메시지를 전송하도록 Camel을 강제 적용하려면 이 옵션을 true로 설정합니다.

false

부울

camel.component.amqp.format-date-headers-to-iso8601

ISO 8601 표준에 따라 날짜 헤더를 포맷해야 하는지 여부를 설정합니다.

false

부울

camel.component.amqp.header-filter-strategy

사용자 지정 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로 헤더를 필터링하려면 다음을 수행합니다. 옵션은 org.apache.camel.spi.HeaderFilterStrategy 유형입니다.

 

문자열

camel.component.amqp.idle-consumer-limit

언제든지 유휴 상태일 수 있는 소비자 수에 대한 제한을 지정합니다.

1

정수

camel.component.amqp.idle-task-execution-limit

수신 작업의 유휴 실행에 대한 제한을 지정하고 해당 실행 내에 메시지를 받지 못했습니다. 이 제한에 도달하면 작업이 종료되고 다른 실행 작업에 대한 수신을 그대로 둡니다(동적 스케줄링의 경우 maxConcurrentConsumers 설정을 참조). Spring에서 사용할 수 있는 추가 doc가 있습니다.

1

정수

camel.component.amqp.include-all-j-m-s-x-properties

JMS에서 Camel Message로 매핑할 때 모든 JMSXxxx 속성을 포함할지 여부입니다. 이 값을 true로 설정하면 JMSXAppID 및 JMSXUserID 등과 같은 속성이 포함됩니다. 참고: 사용자 지정 headerFilterStrategy를 사용하는 경우 이 옵션이 적용되지 않습니다.

false

부울

camel.component.amqp.include-sent-j-m-s-message-i-d

InOnly(예: fire 및 forget)를 사용하여 JMS 대상으로 보낼 때만 적용됩니다. 이 옵션을 사용하면 메시지가 JMS 대상으로 전송될 때 JMS 클라이언트에서 사용하는 실제 JMSMessageID로 Camel Exchange가 강화됩니다.

false

부울

camel.component.amqp.jms-key-format-strategy

JMS 사양을 준수하는 데 사용할 수 있도록 JMS 키를 인코딩 및 디코딩하는 플러그인 전략입니다. Camel은 기본 및 패스스루의 두 가지 구현을 제공합니다. 기본 전략은 점과 하이픈을 안전하게 마샬링합니다(. 및 -). 통과 전략은 다음과 같이 키를 남겨 둡니다. JMS 헤더 키에 불법 문자가 포함되어 있는지 여부를 고려하지 않는 JMS 브로커에 사용할 수 있습니다. org.apache.camel.component.jms.JmsKeyFormatStrategy의 자체 구현을 제공하고 # 표기법을 사용하여 참조할 수 있습니다. 옵션은 org.apache.camel.component.jms.JmsKeyFormatStrategy 유형입니다.

 

문자열

camel.component.amqp.jms-operations

org.springframework.jms.core.JmsOperations 인터페이스의 자체 구현을 사용할 수 있습니다. Camel은 JmsTemplate을 기본값으로 사용합니다. 테스트 목적으로 사용할 수 있지만 스프링 API 문서에 명시된 대로 많이 사용되지는 않습니다. 옵션은 org.springframework.jms.core.JmsOperations 유형입니다.

 

문자열

camel.component.amqp.lazy-create-transaction-manager

true인 경우 Camel은 옵션을 transacted=true할 때 삽입된 transactionManager가 없는 경우 JmsTransactionManager를 생성합니다.

true

부울

camel.component.amqp.map-jms-message

Camel이 수신된 JMS 메시지를 javax.jms.TextMessage와 같은 적절한 페이로드 유형에 자동 매핑해야 하는지 여부를 문자열 등에 지정합니다.

true

부울

camel.component.amqp.max-concurrent-consumers

JMS에서 사용할 때 최대 동시 소비자 수를 지정합니다( JMS를 통한 요청/복제용 아님). 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/응답 시 replyToMaxConcurrentConsumers 옵션은 응답 메시지 리스너에서 동시 소비자 수를 제어하는 데 사용됩니다.

 

정수

camel.component.amqp.max-messages-per-task

작업당 메시지 수입니다. -1은 무제한입니다. 동시 소비자에 범위(예: max)를 사용하는 경우 이 옵션을 사용하여 더 적은 작업이 필요할 때 소비자의 속도를 축소하는 방법을 제어하기 위해 값을 100으로 설정할 수 있습니다.

-1

정수

camel.component.amqp.message-converter

사용자 지정 Spring org.springframework.jms.support.converter.MessageConverter를 사용하려면 javax.jms.Message에 매핑할 수 있는 방법을 제어할 수 있습니다. 옵션은 org.springframework.jms.support.converter.MessageConverter 유형입니다.

 

문자열

camel.component.amqp.message-created-strategy

Camel이 JMS 메시지를 보낼 때 Camel이 javax.jms.Message 오브젝트의 새 인스턴스를 생성할 때 호출되는 지정된 MessageCreatedStrategy를 사용합니다. 옵션은 org.apache.camel.component.jms.MessageCreatedStrategy 유형입니다.

 

문자열

camel.component.amqp.message-id-enabled

전송할 때 메시지 ID를 추가해야 하는지 여부를 지정합니다. 이는 JMS 브로커에 대한 힌트일 뿐입니다. JMS 공급자가 이 힌트를 수락하는 경우 이러한 메시지에는 메시지 ID가 null로 설정되어야 합니다. 공급자가 힌트를 무시하는 경우 메시지 ID를 일반 고유 값으로 설정해야 합니다.

true

부울

camel.component.amqp.message-timestamp-enabled

메시지 전송 시 기본적으로 타임스탬프를 활성화할지 여부를 지정합니다. 이는 JMS 브로커에 대한 힌트일 뿐입니다. JMS 공급자가 이 힌트를 수락하는 경우 이러한 메시지에는 타임스탬프가 0으로 설정되어야 합니다. 공급자가 힌트를 무시하면 타임스탬프를 정규 값으로 설정해야 합니다.

true

부울

camel.component.amqp.password

ConnectionFactory에 사용할 암호입니다. ConnectionFactory에서 사용자 이름/암호를 직접 구성할 수도 있습니다.

 

문자열

camel.component.amqp.preserve-message-qos

JMS 끝점의 QoS 설정이 아니라 메시지에 지정된 QoS 설정을 사용하여 메시지를 보내려면 true로 설정합니다. 다음 세 가지 헤더는 JMSPriority, JMSDeliveryMode 및 JMSExpiration으로 간주됩니다. 전부 또는 일부만 제공할 수 있습니다. 제공되지 않는 경우 Camel은 엔드포인트의 값을 사용하도록 대체합니다. 따라서 이 옵션을 사용하면 헤더가 끝점의 값을 재정의합니다. 반면 explicitQosEnabled 옵션은 메시지 헤더의 값이 아닌 끝점에 설정된 옵션만 사용합니다.

false

부울

camel.component.amqp.priority

1보다 큰 값은 보낼 때 메시지 우선 순위를 지정합니다(여기서 0이 가장 낮은 우선 순위이고 9가 가장 높은 경우). 이 옵션을 적용하려면 explicitQosEnabled 옵션도 활성화해야 합니다.

4

정수

camel.component.amqp.pub-sub-no-local

자체 연결에서 게시한 메시지 배달을 금지할지 여부를 지정합니다.Specifies whether to inhibit the delivery of messages published by its own connection.

false

부울

camel.component.amqp.queue-browse-strategy

대기열을 탐색할 때 사용자 지정 QueueBrowseStrategy를 사용하려면 다음을 수행합니다. 옵션은 org.apache.camel.component.jms.QueueBrowseStrategy 유형입니다.

 

문자열

camel.component.amqp.receive-timeout

메시지 수신 시간(밀리초)입니다.

1000

long

camel.component.amqp.recovery-interval

연결이 새로 고쳐질 때(즉, 밀리초) 복구 시도 사이의 간격을 지정합니다. 기본값은 5000ms, 즉 5초입니다.

5000

long

camel.component.amqp.reply-on-timeout-to-max-concurrent-consumers

JMS를 통해 요청/reply를 사용할 때 시간 초과가 발생한 경우 계속 라우팅할 수 있는 최대 동시 소비자 수를 지정합니다.

1

정수

camel.component.amqp.reply-to-cache-level-name

JMS를 통해 요청/반복을 수행할 때 응답 소비자의 이름으로 캐시 수준을 설정합니다. 이 옵션은 고정 응답 대기열(임시 아님)을 사용하는 경우에만 적용됩니다. Camel은 기본적으로 배타적 또는 공유 w/ replyToSelectorName에 대해 CACHE_CONSUMER를 사용합니다. 그리고 replyToSelectorName 없이 공유의 경우 CACHE_SESSION을 사용합니다. IBM WebSphere와 같은 일부 JMS 브로커는 작동하도록 replyToCacheLevelName=CACHE_NONE을 설정해야 할 수 있습니다. 참고: 임시 대기열을 사용하는 경우 CACHE_NONE이 허용되지 않으며 CACHE_CONSUMER 또는 CACHE_SESSION과 같은 더 높은 값을 사용해야 합니다.

 

문자열

camel.component.amqp.reply-to-concurrent-consumers

JMS를 통해 요청/reply를 수행할 때 기본 동시 소비자 수를 지정합니다. 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오.

1

정수

camel.component.amqp.reply-to-max-concurrent-consumers

JMS에서 요청/reply를 사용할 때 최대 동시 소비자 수를 지정합니다. 스레드의 동적 확장/다운을 제어하려면 maxMessagesPerTask 옵션도 참조하십시오.

 

정수

camel.component.amqp.reply-to-type

를 사용하면 JMS를 통해 요청/reply를 수행할 때 replyTo 큐에 사용할 유형의 전략을 명시적으로 지정할 수 있습니다. 가능한 값은 임시, 공유 또는 제외입니다. 기본적으로 Camel은 임시 대기열을 사용합니다. 그러나 replyTo가 구성된 경우 기본적으로 Shared가 사용됩니다. 이 옵션을 사용하면 공유 대기열 대신 전용 대기열을 사용할 수 있습니다. 자세한 내용은 Camel JMS 설명서를 참조하십시오. 특히 클러스터형 환경에서 실행 중인 경우 미치는 영향에 대한 참고 사항 및 공유 응답 대기열이 대체 시간 및 필수 값보다 성능이 낮다는 사실에서 참조하십시오.

 

ReplyToType

camel.component.amqp.request-timeout

InOut Exchange Pattern(밀리초)을 사용할 때 응답을 기다리는 시간 초과입니다. 기본값은 20초입니다. 이 엔드포인트 구성 시간 값을 재정의하기 위해 CamelJmsRequestTimeout 헤더를 포함할 수 있으므로 메시지당 개별 시간 제한 값이 있습니다. requestTimeoutCheckerInterval 옵션도 참조하십시오.

20000

long

camel.component.amqp.request-timeout-checker-interval

Camel이 JMS를 통해 요청/반복 시 Exchange 시간 초과를 확인하는 빈도를 설정합니다. 기본적으로 Camel은 초당 한 번 확인합니다. 그러나 시간 초과가 발생할 때 더 빠르게 대응해야 하는 경우 이 간격을 낮추어 더 자주 확인할 수 있습니다. 시간 제한은 옵션 requestTimeout에 따라 결정됩니다.

1000

long

camel.component.amqp.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.amqp.stream-message-type-enabled

StreamMessage 유형이 활성화되어 있는지 여부를 설정합니다. 파일, InputStream 등과 같은 스트리밍 종류의 메시지 페이로드는 BytesMessage 또는 StreamMessage로 전송됩니다. 이 옵션은 사용할 유형을 제어합니다. 기본적으로 BytesMessage는 전체 메시지 페이로드를 메모리로 읽어오도록 적용하는 데 사용됩니다. 이 옵션을 활성화하면 메시지 페이로드가 청크의 메모리에 판독되고 각 청크는 더 이상 데이터가 없을 때까지 StreamMessage에 작성됩니다.

false

부울

camel.component.amqp.subscription-durable

서브스크립션의 내구성을 유지할지 여부를 설정합니다. 사용할 내구성 서브스크립션 이름은 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 사용 가능한 서브스크립션을 등록하려면 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 주제(pub-sub 도메인)를 청취할 때만 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다.

false

부울

camel.component.amqp.subscription-name

생성할 서브스크립션의 이름을 설정합니다. 공유 또는 내구성이 있는 주제(pub-sub 도메인)의 경우 적용됩니다. 서브스크립션 이름은 이 클라이언트의 JMS 클라이언트 ID 내에서 고유해야 합니다. 기본값은 지정된 메시지 리스너의 클래스 이름입니다. 참고: JMS 2.0이 필요한 공유 서브스크립션을 제외하고 각 서브스크립션에 대해 1개의 동시 소비자(이 기본값은 이 메시지 리스너 컨테이너)만 허용됩니다.

 

문자열

camel.component.amqp.subscription-shared

서브스크립션을 공유할지 여부를 설정합니다. 사용할 공유 서브스크립션 이름은 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 공유 서브스크립션을 등록하려면 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 공유 서브스크립션도 내구성이 있을 수 있으므로 이 플래그도 subscriptionDurable과 결합될 수 있습니다. 주제(pub-sub 도메인)를 청취할 때만 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다. JMS 2.0 호환 메시지 브로커가 필요합니다.

false

부울

camel.component.amqp.task-executor

메시지를 사용하기 위한 사용자 지정 작업 executor를 지정할 수 있습니다. 옵션은 org.springframework.core.task.TaskExecutor 유형입니다.

 

문자열

camel.component.amqp.test-connection-on-startup

시작 시 연결을 테스트할지 여부를 지정합니다.Specifies whether to test the connection on startup. 이를 통해 Camel이 모든 JMS 소비자가 JMS 브로커에 대한 유효한 연결을 시작하게 합니다. 연결을 허용할 수 없는 경우 Camel은 시작 시 예외를 throw합니다. 이렇게 하면 Camel이 실패한 연결로 시작되지 않습니다. JMS 생산자도 테스트 중입니다.

false

부울

camel.component.amqp.time-to-live

메시지를 보낼 때 메시지의 TTL(밀리초)을 지정합니다.

-1

long

camel.component.amqp.transacted

transacted 모드를 사용할지 여부를 지정합니다.

false

부울

camel.component.amqp.transaction-manager

사용할 Spring 트랜잭션 관리자입니다. 옵션은 org.springframework.transaction.PlatformTransactionManager 유형입니다.

 

문자열

camel.component.amqp.transaction-name

사용할 트랜잭션의 이름입니다.

 

문자열

camel.component.amqp.transaction-timeout

트랜잭션 모드를 사용하는 경우 트랜잭션의 시간 초과 값(초 단위)입니다.

-1

정수

camel.component.amqp.transfer-exception

활성화되고 소비자 측면에서 Request Reply messaging(InOut)을 사용하고 Exchange 실패를 사용하는 경우 원인 Exception이 다시 javax.jms.ObjectMessage로 응답으로 다시 전송됩니다. 클라이언트가 Camel인 경우 반환된 Exception은 rethrown입니다. 이를 통해 라우팅에서 Camel JMS를 브리지로 사용할 수 있습니다. 예를 들어 영구 대기열을 사용하여 강력한 라우팅을 활성화할 수 있습니다. 또한 transferExchange를 사용하도록 설정한 경우 이 옵션이 우선합니다. catch 예외는 직렬화 가능 해야 합니다.The caught exception is required to be serializable. 소비자 측의 원래 예외는 생산자로 반환될 때 org.apache.camel.RuntimeCamelException과 같은 외부 예외로 래핑될 수 있습니다.

false

부울

camel.component.amqp.transfer-exchange

당신은 단지 바디와 헤더 대신 전선을 통해 교환을 전송할 수 있습니다. 다음 필드가 전송됩니다. 본문, 외부 본문, Fault 본문, 헤더, 외부 헤더, Fault 헤더, 교환 속성, 교환 예외. 이렇게 하려면 개체가 직렬화 가능 해야 합니다.This requires that the objects are serializable. Camel은 non-serializable 오브젝트를 제외하고 WARN 수준에서 로깅합니다. 제작자와 소비자 측에서 이 옵션을 모두 활성화해야 하므로 Camel은 페이로드가 Exchange이고 일반 페이로드가 아닌 Exchange임을 알고 있습니다.

false

부울

camel.component.amqp.transfer-fault

활성화된 경우 Request Reply messaging (InOut)을 사용하고 Exchange가 소비자 측에서 SOAP 오류 ( exception 아님)와 함께 실패한 경우 Message#isFault()의 오류 플래그는 키 org.apache.camel.component.jmsConstel.jms.JmsConstant.jmsConstants #JMS_TRANTER_FATRANTER_FATER_JMS_TRANTER_FATRANTER_JMST_TRANTER_JMS_TRANTER_TRANTER_TRANTER_JMS_TRANTER_JMS 헤더로 다시 전송될 것입니다. 클라이언트가 Camel인 경우 반환된 fault 플래그가 org.apache.camel.Message#setFault(boolean)에 설정됩니다. Cxf 또는 Spring-ws와 같은 SOAP과 같은 결함을 지원하는 Camel 구성 요소를 사용할 때 이를 활성화할 수 있습니다.

false

부울

camel.component.amqp.use-message-i-d-as-correlation-i-d

JMSMessageID를 항상 InOut 메시지의 JMSCorrelationID로 사용할지 여부를 지정합니다.

false

부울

camel.component.amqp.username

ConnectionFactory와 함께 사용할 사용자 이름입니다. ConnectionFactory에서 사용자 이름/암호를 직접 구성할 수도 있습니다.

 

문자열

camel.component.amqp.wait-for-provision-correlation-to-be-updated-counter

JMS를 통해 요청/응답할 때 및 useMessageIDAsCorrelationID 옵션이 활성화된 경우 provisional correlation id가 실제 상관 관계 ID로 업데이트될 때까지 대기하는 횟수입니다.

50

정수

camel.component.amqp.wait-for-provision-correlation-to-be-updated-thread-sleeping-time

프로비저닝 상관 ID가 업데이트될 때까지 기다리는 동안 밀리코어가 잠기지 않는 간격입니다.

100

long

5.4. 사용법

AMQP 구성 요소가 JMS 구성 요소에서 상속되므로 전자 사용은 후자의 사용과 거의 동일합니다.

AMQP 구성 요소 사용

// Consuming from AMQP queue
from("amqp:queue:incoming").
  to(...);
 
// Sending message to the AMQP topic
from(...).
  to("amqp:topic:notify");
Copy to Clipboard Toggle word wrap

5.5. AMQP 구성 요소 구성

Camel 2.16.1부터 AMQPComponent#amqp10Component(String connectionURI) 팩토리 메서드를 사용하여 사전 구성된 주제 접두사가 있는 AMQP 1.0 구성 요소를 반환할 수도 있습니다. 

AMQP 1.0 구성 요소 생성

 AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
Copy to Clipboard Toggle word wrap

Camel 2.17부터 AMQPComponent#amqp10Component(String connectionURI) 팩토리 방법(String connectionURI)의 경우 AMQPComponent#amqpComponent(String connectionURI) 를 대신하여 더 이상 사용되지 않습니다. 

AMQP 1.0 구성 요소 생성

AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672");
 
AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
Copy to Clipboard Toggle word wrap

AMQP 구성 요소를 자동으로 구성하기 위해 Camel 2.17부터 레지스트리에 org.apache.camel.component.amqp.AMQPConnectionDetails 인스턴스를 추가할 수도 있습니다. 예를 들어 Spring Boot의 경우 빈을 정의해야 합니다.

AMQP 연결 세부 정보 자동 구성

@Bean
AMQPConnectionDetails amqpConnection() {
  return new AMQPConnectionDetails("amqp://localhost:5672");
}
 
@Bean
AMQPConnectionDetails securedAmqpConnection() {
  return new AMQPConnectionDetails("amqp://localhost:5672", "username", "password");
}
Copy to Clipboard Toggle word wrap

마찬가지로 Camel-CDI를 사용할 때 CDI 생산자 방법을 사용할 수도 있습니다.

AMQP 연결 세부 정보 CDI의 자동 구성

@Produces
AMQPConnectionDetails amqpConnection() {
  return new AMQPConnectionDetails("amqp://localhost:5672");
}
Copy to Clipboard Toggle word wrap

Camel 속성 을 사용하여 AMQP 연결 세부 정보를 읽을 수도 있습니다. 팩토리 방법 AMQPConnectionDetails.discoverAMQP() 는 아래 스니펫에서와 같이 Kubernetes와 유사한 규칙에서 Camel 속성을 읽으려고 합니다.

AMQP 연결 세부 정보 자동 구성

export AMQP_SERVICE_HOST = "mybroker.com"
export AMQP_SERVICE_PORT = "6666"
export AMQP_SERVICE_USERNAME = "username"
export AMQP_SERVICE_PASSWORD = "password"
 
...
 
@Bean
AMQPConnectionDetails amqpConnection() {
  return AMQPConnectionDetails.discoverAMQP();
}
Copy to Clipboard Toggle word wrap

AMQP 관련 옵션 활성화

예를 들어, 다음 예제 와 같이 옵션을 URI에 추가하여mqp.traceFrames 를 활성화해야 합니다.

AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672?amqp.traceFrames=true");
Copy to Clipboard Toggle word wrap

참조는 QPID JMS 클라이언트 구성을 참조하십시오.

5.6. 주제 사용

camel-amqp 로 작업하는 주제를 사용하려면 다음과 같이 topic:// 를 주제 접두사로 사용하도록 구성 요소를 구성해야 합니다.

 <bean id="amqp" class="org.apache.camel.component.amqp.AmqpComponent">
   <property name="connectionFactory">
     <bean class="org.apache.qpid.jms.JmsConnectionFactory" factory-method="createFromURL">
       <property name="remoteURI" value="amqp://localhost:5672" />
       <property name="topicPrefix" value="topic://" />  <!-- only necessary when connecting to ActiveMQ over AMQP 1.0 -->
     </bean>
   </property>
 </bean>
Copy to Clipboard Toggle word wrap

AMQPComponent#amqpComponent() 메서드와 AMQPConnectionDetails 둘 다 주제 접두사로 구성 요소를 미리 구성하므로 이를 명시적으로 구성할 필요가 없습니다.

5.7. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기

6장. APNS 구성 요소

Camel 버전 2.8에서 사용 가능

apns 구성 요소는 iOS 장치에 알림을 보내는 데 사용됩니다. apns 구성 요소는 javapns 라이브러리를 사용합니다.
구성 요소는 Apple Push Notification Servers(APNS)에 알림을 보내고 서버에서 피드백을 사용할 수 있도록 지원합니다.

소비자는 Apple Push Notification Servers에서 때때로 피드백 스트림을 사용하는 것이 최상의 관행이기 때문에 기본적으로 3600초로 구성됩니다. 예를 들어, 서버 홍수를 방지하기 위해 1시간마다.

피드백 스트림은 비활성 장치에 대한 정보를 제공합니다. 모바일 애플리케이션이 크게 사용되지 않은 경우에만 몇 시간마다 이 정보를 얻을 수 있습니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-apns</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

6.1. URI 형식

알림을 보내려면 다음을 수행합니다.

apns:notify[?options]
Copy to Clipboard Toggle word wrap

피드백을 사용하려면 다음을 수행합니다.

apns:consumer[?options]
Copy to Clipboard Toggle word wrap

6.2. 옵션

APNS 구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

apnsService (일반)

사용할 ApnsService가 필요합니다. org.apache.camel.component.apns.factory.ApnsServiceFactory를 사용하여 ApnsService를 빌드할 수 있습니다.

 

ApnsService

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

APNS 끝점은 URI 구문을 사용하여 구성됩니다.

apns:name
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

6.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

name

끝점의 이름입니다.

 

문자열

6.2.2. 쿼리 매개변수 (20 매개변수):

Expand
이름설명기본값유형

토큰 (공용)

알림하려는 장치와 관련된 토큰을 정적으로 선언하려는 경우 이 속성을 구성합니다. 토큰은 쉼표로 구분됩니다.

 

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

sendEmptyMessageWhenIdle (consumer)

폴링 소비자가 파일을 폴링하지 않은 경우 이 옵션을 활성화하여 빈 메시지( 본문 없음)를 대신 보낼 수 있습니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

pollStrategy (consumer)

플러그형 org.apache.camel.PollingConsumerPollingStrategy를 사용하면 Camel에서 Exchange를 생성하고 라우팅하기 전에 폴링 작업 중에 일반적으로 발생한 오류 처리를 제어하는 사용자 정의 구현을 제공할 수 있습니다.

 

PollingConsumerPoll Strategy

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

backoffErrorThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 오류 폴링(일부 오류 발생) 수입니다.

 

int

backoffIdleThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 유휴 폴링 수입니다.

 

int

backoffMultiplier (scheduler)

예약된 폴링 소비자 백오프가 연속된 여러 개의 유휴/errors가 있는 경우 해당 행에 사용할 수 있습니다. multiplier는 다음 실제 시도가 다시 발생하기 전에 건너뛸 폴링 수입니다. 이 옵션을 사용하는 경우 backoffIdleThreshold 및/또는 backoffErrorThreshold도 구성해야 합니다.

 

int

지연 (scheduler)

다음 폴링보다 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

500

long

greedy (scheduler)

greedy가 활성화된 경우 ScheduledPollConsumer는 이전 실행이 1개 이상의 메시지를 폴링하면 즉시 다시 실행됩니다.

false

boolean

initialDelay (scheduler)

첫 번째 폴링이 시작되기 전까지의 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

1000

long

runLoggingLevel (scheduler)

소비자는 폴링할 때 시작/완료 로그 행을 기록합니다. 이 옵션을 사용하면 로깅 수준을 구성할 수 있습니다.

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

소비자에 사용할 사용자 지정/공유 스레드 풀을 구성할 수 있습니다. 기본적으로 각 소비자는 자체 스레드 스레드 풀이 있습니다.

 

ScheduledExecutor Service

스케줄러 (scheduler)

camel-spring 또는 camel-quartz2 구성 요소에서 cron 스케줄러를 사용하려면

none

ScheduledPollConsumer Scheduler

스케줄러 속성 (scheduler)

사용자 지정 스케줄러 또는 Quartz2, Spring 기반 스케줄러를 사용할 때 추가 속성을 구성하려면 다음을 수행합니다.

 

map

StartScheduler (scheduler)

스케줄러가 자동으로 시작되어야 하는지 여부입니다.

true

boolean

timeUnit (scheduler)

initialDelay 및 지연 옵션의 시간 단위입니다.

밀리초

TimeUnit

UseFixedDelay (scheduler)

고정 지연 또는 고정 속도가 사용되는 경우 제어합니다. 자세한 내용은 JDK의 ScheduledExecutorService를 참조하십시오.

true

boolean

6.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 3 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.apns.apns-service

사용할 ApnsService입니다. org.apache.camel.component.apns.factory.ApnsServiceFactory를 사용하여 ApnsService를 빌드할 수 있습니다. 옵션은 com.notnoop.apns.ApnsService 유형입니다.

 

문자열

camel.component.apns.enabled

apns 구성 요소 활성화

true

부울

camel.component.apns.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

다음 형식 ?option=value&option=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

6.3.1. 구성 요소

ApnsComponentcom.notnoop.apns.ApnsService 로 구성해야 합니다. 서비스는 org.apache.camel.component.apns.factory.ApnsServiceFactory 를 사용하여 생성하고 구성할 수 있습니다. 예제는 아래를 참조하십시오. 또한 테스트 소스 코드에서 도 마찬가지입니다.

6.3.1.1. SSL 설정

보안 연결을 사용하려면 구성 요소를 구성하는 데 사용되는 org.apache.camel.jsse.jsse.SSLContextParameters 의 인스턴스를 org.apache.camel.component.apns.factory.ApnsServiceFactory 에 삽입해야 합니다. 예제는 테스트 리소스를 참조하십시오. SSL 예

6.4. 교환 데이터 형식

Camel이 비활성 장치에 해당하는 피드백 데이터를 가져오면 InactiveDevice 오브젝트 목록을 검색합니다. 검색된 목록의 각 InactiveDevice 오브젝트는 본문으로 설정된 다음 소비자 끝점에서 처리합니다.

6.5. 메시지 헤더

Camel Apns는 이러한 헤더를 사용합니다.

Expand
속성기본값설명

CamelApnsTokens

 

기본적으로 비어 있습니다.

CamelApnsMessageType

STRING, PAYLOAD, APNS_NOTIFICATION 

메시지 유형에 대해 PAYLOAD를 선택하는 경우, 메시지가 APNS 페이로드로 간주되고 그대로 전송됩니다. STRING을 선택하면 메시지가 APNS 페이로드로 변환됩니다. Camel 2.16 에서 APNS_NOTIFICATION은 메시지 본문을 com.notnoop.apns.ApnsNotification 유형으로 보내는 데 사용됩니다.

6.6. ApnsServiceFactory 빌더 콜백

ApnsServiceFactory 에는 기본 ApnsServiceBuilder 인스턴스를 구성(또는 대체)하는 데 사용할 수 있는 빈 콜백 메서드가 제공됩니다. 메서드의 서명은 다음과 같이 나타날 수 있습니다.

protected ApnsServiceBuilder configureServiceBuilder(ApnsServiceBuilder serviceBuilder);
Copy to Clipboard Toggle word wrap

다음과 같이 사용할 수 있습니다.

ApnsServiceFactory proxiedApnsServiceFactory = new ApnsServiceFactory(){
  
  @Override
  protected ApnsServiceBuilder configureServiceBuilder(ApnsServiceBuilder serviceBuilder) {
    return serviceBuilder.withSocksProxy("my.proxy.com", 6666);
  }

};
Copy to Clipboard Toggle word wrap

6.7. 샘플

6.7.1. Camel Xml 경로

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:camel="http://camel.apache.org/schema/spring"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

    <!-- Replace by desired values -->
    <bean id="apnsServiceFactory" class="org.apache.camel.component.apns.factory.ApnsServiceFactory">

        <!-- Optional configuration of feedback host and port -->
        <!-- <property name="feedbackHost" value="localhost" /> -->
        <!-- <property name="feedbackPort" value="7843" /> -->

        <!-- Optional configuration of gateway host and port -->
        <!-- <property name="gatewayHost" value="localhost" /> -->
        <!-- <property name="gatewayPort" value="7654" /> -->

        <!-- Declaration of certificate used -->
                <!-- from Camel 2.11 onwards you can use prefix: classpath:, file: to refer to load the certificate from classpath or file. Default it classpath -->
        <property name="certificatePath" value="certificate.p12" />
        <property name="certificatePassword" value="MyCertPassword" />

        <!-- Optional connection strategy - By Default: No need to configure -->
        <!-- Possible options: NON_BLOCKING, QUEUE, POOL or Nothing -->
        <!-- <property name="connectionStrategy" value="POOL" /> -->
        <!-- Optional pool size -->
        <!-- <property name="poolSize" value="15" /> -->

        <!-- Optional connection strategy - By Default: No need to configure -->
        <!-- Possible options: EVERY_HALF_HOUR, EVERY_NOTIFICATION or Nothing (Corresponds to NEVER javapns option) -->
        <!-- <property name="reconnectionPolicy" value="EVERY_HALF_HOUR" /> -->
    </bean>

    <bean id="apnsService" factory-bean="apnsServiceFactory" factory-method="getApnsService" />

    <!-- Replace this declaration by wanted configuration -->
    <bean id="apns" class="org.apache.camel.component.apns.ApnsComponent">
        <property name="apnsService" ref="apnsService" />
    </bean>

    <camelContext id="camel-apns-test" xmlns="http://camel.apache.org/schema/spring">
            <route id="apns-test">
                    <from uri="apns:consumer?initialDelay=10&amp;delay=3600&amp;timeUnit=SECONDS" />
                    <to uri="log:org.apache.camel.component.apns?showAll=true&amp;multiline=true" />
                    <to uri="mock:result" />
            </route>
    </camelContext>

</beans>
Copy to Clipboard Toggle word wrap

6.7.2. Camel Java 경로

camel 컨텍스트 생성 및 프로그래밍 방식으로 apns 구성 요소 선언

    protected CamelContext createCamelContext() throws Exception {
        CamelContext camelContext = super.createCamelContext();

        ApnsServiceFactory apnsServiceFactory = new ApnsServiceFactory();
        apnsServiceFactory.setCertificatePath("classpath:/certificate.p12");
        apnsServiceFactory.setCertificatePassword("MyCertPassword");

        ApnsService apnsService = apnsServiceFactory.getApnsService(camelContext);

        ApnsComponent apnsComponent = new ApnsComponent(apnsService);
        camelContext.addComponent("apns", apnsComponent);

        return camelContext;
    }
Copy to Clipboard Toggle word wrap

[[APNS-ApnsProducer-iOStargetdevicedynamicallyconfiguredviaheader:"CamelApnsTokens"] 헤더를 통해 동적으로 구성된 ApnsProducer - iOS 대상 장치: "CamelApnsTokens""

    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            public void configure() throws Exception {
                from("direct:test")
                    .setHeader(ApnsConstants.HEADER_TOKENS, constant(IOS_DEVICE_TOKEN))
                    .to("apns:notify");
                }
        }
    }
Copy to Clipboard Toggle word wrap

ApnsProducer - iOS 대상 장치는 uri을 통해 정적으로 구성

    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            public void configure() throws Exception {
                from("direct:test").
                to("apns:notify?tokens=" + IOS_DEVICE_TOKEN);
            }
        };
    }
Copy to Clipboard Toggle word wrap

ApnsConsumer

from("apns:consumer?initialDelay=10&delay=3600&timeUnit=SECONDS")
    .to("log:com.apache.camel.component.apns?showAll=true&multiline=true")
    .to("mock:result");
Copy to Clipboard Toggle word wrap

6.8. 예를 들면 다음과 같습니다.

7장. ASN.1 파일 데이터 형식

Camel 버전 2.20에서 사용 가능

ASN.1 Data Format Data Format [Intoduction to ASN.1](https://www.itu.int/en/ITU-T/asn1/Pages/introduction.aspx는 Bouncy Castle의 bcprov-jdk15on 라이브러리 및 jASN-jdk15on 라이브러리 및 jASN.1의 Java 컴파일러를 기반으로 하는 Camel 프레임워크의 데이터 형식 구현입니다. 메시지는 unmarshalled(단순 Java POJO에 대한 버전)에서 일반 Java 오브젝트에 적용할 수 있습니다. Camel의 라우팅 엔진 및 데이터 변환의 도움으로 POJO를 사용하여 사용자 지정 포맷을 적용하고 다른 Camel 구성 요소를 호출하여 메시지를 업스트림 시스템으로 변환 및 전송할 수 있습니다.

7.1. ASN.1 데이터 형식 옵션

ASN.1 File dataformat은 아래 나열된 세 가지 옵션을 지원합니다.

Expand
이름기본값Java Type설명

usingIterator

false

부울

asn1 파일에 하나 이상의 항목이 있는 경우 이 옵션을 true로 설정하면 splitter EIP로 작업할 수 있으며 스트리밍 모드에서 반복기를 사용하여 데이터를 분할할 수 있습니다.

clazzName

 

문자열

unmarshalling할 때 사용할 클래스의 이름

contentTypeHeader

false

부울

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

7.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 4 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.dataformat.asn1.clazz-name

unmarshalling할 때 사용할 클래스의 이름

 

문자열

camel.dataformat.asn1.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.asn1.enabled

asn1 데이터 형식의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.dataformat.asn1.using-iterator

asn1 파일에 하나 이상의 항목이 있는 경우 이 옵션을 true로 설정하면 splitter EIP로 작업할 수 있으며 스트리밍 모드에서 반복기를 사용하여 데이터를 분할할 수 있습니다.

false

부울

ND

7.3. unmarshal

해상 ASN.1 구조화된 메시지를 압축 해제하는 방법에는 세 가지가 있습니다. (일반적으로 바이너리 파일)

이 첫 번째 예제에서는 OutputStream에 대한marshal BER 파일 페이로드를 생략하고 mock 엔드포인트로 보냅니다.

from("direct:unmarshal").unmarshal(asn1).to("mock:unmarshal");
Copy to Clipboard Toggle word wrap

두 번째 예제에서는 Split EIP를 사용하여 바이트 배열에 대한marshal BER 파일 페이로드를 해제합니다. Split EIP를 적용하는 이유는 일반적으로 각 BER 파일 또는 (ASN.1 구조화된 파일)에 처리 할 여러 레코드가 포함되어 있으며 Split EIP는 실제로 ASN1Primitive의 인스턴스 (Bunastle의 ASN 사용)인 바이트 배열로 파일의 각 레코드를 가져오는 데 도움이 되기 때문입니다. 1 bcprov-jdk15on 라이브러리의 지원) Byte 배열은 (ASN1Primitive.fromByteArray)의 공용 정적 메서드의 도움으로 ASN1Primitive로 변환될 수 있습니다. Iter ator=true를 사용하여설정해야 합니다.

from("direct:unmarshal").unmarshal(asn1).split(body(Iterator.class)).streaming().to("mock:unmarshal");
Copy to Clipboard Toggle word wrap

마지막 예제에서는 Split EIP를 사용하는 기존 Java 객체에 대한marshal BER 파일 페이로드를 해제합니다. Split EIP를 적용하는 이유는 이미 이전 예제에서 언급되어 있습니다. 그 이유를 염두에 두십시오. 이 예제에서는 또한 클래스의 정규화된 이름 또는 데이터 형식을 통해 <YourObject>.class 참조를 설정해야 합니다. 여기서 주의해야 할 중요한 사항은 ASN.1 구조의 Java 개체 표현을 생성하는 유용한 도구인 jasn1 컴파일러에 의해 개체가 생성되어야 한다는 것입니다. jasn1 컴파일러의 참조 사용은 [JASN.1 Project Page](https://www.openmuc.org/asn1/)를 참조하고 maven의 exec 플러그인과 함께 컴파일러를 호출하는 방법도 참조하십시오. 예를 들어, 이 데이터 형식의 단위에서는 예제 ASN.1 구조(TestSMSBerCdr.asn1)가 src/test/resources/asn1_structure. jasn1 컴파일러에 추가되고 java 오브젝트의 표현이 호출되고 java 오브젝트의 표현은 ${basedir}/target/generated/src/src/test/java 에 생성됩니다.

from("direct:unmarshaldsl")
         .unmarshal()
         .asn1("org.apache.camel.dataformat.asn1.model.testsmscbercdr.SmsCdr")
         .split(body(Iterator.class)).streaming()
.to("mock:unmarshaldsl");
Copy to Clipboard Toggle word wrap

7.4. 종속 항목

camel 경로에서 ASN.1 데이터 형식을 사용하려면 이 데이터 형식을 구현하는 camel-asn1 에 종속성을 추가해야 합니다.

Maven을 사용하는 경우 pom.xml 에 다음을 추가할 수 있으며 최신 및 가장 큰 릴리스의 버전 번호를 대체합니다(최신 버전의 다운로드 페이지 참조).

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-asn1</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

8장. AS2 구성 요소

중요

Karaf의 camel-as2 구성 요소는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다.

이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview 에서 참조하십시오.

Camel 버전 2.22에서 사용 가능

AS2 구성 요소는 RFC4130 에 지정된 대로 HTTP 전송 프로토콜을 사용하여 EDI 메시지의 전송을 제공합니다.

참고

이 구성 요소는 현재 진행 중인 작업입니다. URI 옵션 및 경로 및 쿼리 매개 변수가 이 구성 요소의 향후 버전에서 변경될 수 있습니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-as2</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

8.1. URI 형식

as2://apiName/methodName
Copy to Clipboard Toggle word wrap

apiName은 다음 중 하나일 수 있습니다.

  • 클라이언트
  • server

8.2. AS2 옵션

AS2 구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (일반)

공유 구성을 사용하려면To use the shared configuration

 

AS2Configuration

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AS2 끝점은 URI 구문을 사용하여 구성됩니다.

as2:apiName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

8.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

apiName

떤 종류의 작업을 수행해야 합니까?

 

AS2ApiName

8.2.2. 쿼리 매개변수(30 매개변수):

Expand
이름설명기본값유형

as2From (일반)

AS2 메시지의 AS2From 헤더 값입니다.

 

문자열

as2MessageStructure (일반)

AS2 Message의 구조입니다. PLAIN - 암호화 없음, 서명 없음, SIGNED - 암호화 없음, 서명, ENCRYPTED - 암호화, 서명 없음, 서명

 

AS2MessageStructure

as2To (일반)

AS2 메시지의 AS2To 헤더 값입니다.

 

문자열

as2Version (일반)

AS2 프로토콜의 버전입니다.

1.1

문자열

clientFqdn (일반)

클라이언트 정규화된 도메인 이름(FQDN)입니다. 끝점에서 보낸 메시지 ID에서 사용됩니다.

camel.apache.org

문자열

dispositionNotificationTo (common)

Disposition-Notification-To 헤더의 값입니다. 이 매개 변수에 값을 할당하면 AS2 메시지에 대한 message disposition notification(MDN)이 요청됩니다.

 

문자열

ediMessageTransferEncoding (일반)

EDI 메시지의 전송 인코딩입니다.

 

문자열

ediMessageType (일반)

EDI 메시지의 콘텐츠 유형입니다. application/edifact, application/edi-x12 중 하나, application/edi-consent

 

ContentType

encryptingAlgorithm (common)

EDI 메시지를 암호화하는 데 사용되는 알고리즘입니다.

 

AS2EncryptionAlgorithm

인증서 체인 암호화 (일반)

EDI 메시지를 암호화하는 데 사용되는 인증서 체인입니다.

 

certificate[]

privateKey 암호화 ( 일반)

EDI 메시지를 암호화하는 데 사용되는 키입니다.

 

PrivateKey

에서 (일반)

AS2 메시지의 From 헤더의 값입니다.

 

문자열

InBody (일반)

교환 In Body에서 전달할 매개 변수의 이름을 설정합니다.

 

문자열

methodName (common)

선택한 작업에 사용할 하위 작업 필요

 

문자열

requestUri (common)

EDI 메시지의 요청 URI입니다.

/

문자열

서버 (공용)

AS2 서버를 식별하는 서버 메시지 헤더에 포함된 값입니다.

Camel AS2 Server Endpoint

문자열

serverFqdn (common)

서버의 정규화된 도메인 이름(FQDN)입니다. 끝점에서 보낸 메시지 ID에서 사용됩니다.

camel.apache.org

문자열

serverPortNumber (일반)

서버 포트 번호입니다.

 

정수

signedReceiptMicAlgorithms (일반적으로)

MDN(Message dispostion notification)에서 반환된 MIC(메시지 무결성 검사)를 생성하도록 요청된 알고리즘 목록입니다.

 

string[]

signingAlgorithm (일반)

EDI 메시지에 서명하는 데 사용되는 알고리즘입니다.

 

AS2SignatureAlgorithm

signingCertificateChain (일반)

EDI 메시지에 서명하는 데 사용되는 인증서 체인입니다.

 

certificate[]

signingPrivateKey (common)

EDI 메시지에 서명하는 데 사용되는 키입니다.

 

PrivateKey

제목 (일반)

AS2 메시지의 주체 헤더 값입니다.

 

문자열

targetHostname (일반)

대상 호스트의 호스트 이름(IP 또는 DNS 이름)입니다.

 

문자열

targetPortNumber (일반)

대상 호스트의 포트 수입니다. -1은 스키마의 기본 포트를 나타냅니다.

 

정수

userAgent (일반)

AS2 사용자 에이전트를 식별하는 User-Agent 메시지 헤더에 포함된 값입니다.

Camel AS2 클라이언트 끝점

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

8.3. Spring Boot Auto-Configuration

구성 요소는 아래에 나열된 28 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.as2.configuration.api-name

어떤 종류의 작업을 수행합니까?

 

AS2ApiName

camel.component.as2.configuration.as2-from

AS2 메시지의 AS2From 헤더 값입니다.

 

문자열

camel.component.as2.configuration.as2-message-structure

AS2 Message의 구조입니다. PLAIN - 암호화 없음, 서명 없음, SIGNED - 암호화 없음, 서명, ENCRYPTED - 암호화, 서명 없음, 서명

 

AS2MessageStructure

camel.component.as2.configuration.as2-to

AS2 메시지의 AS2To 헤더 값입니다.

 

문자열

camel.component.as2.configuration.as2-version

AS2 프로토콜의 버전입니다.

1.1

문자열

camel.component.as2.configuration.client-fqdn

클라이언트 정규화된 도메인 이름(FQDN)입니다. 끝점에서 보낸 메시지 ID에서 사용됩니다.

camel.apache.org

문자열

camel.component.as2.configuration.disposition-notification-to

Disposition-Notification-To 헤더의 값입니다. 이 매개 변수에 값을 할당하면 AS2 메시지에 대한 message disposition notification(MDN)이 요청됩니다.

 

문자열

camel.component.as2.configuration.edi-message-transfer-encoding

EDI 메시지의 전송 인코딩입니다.

 

문자열

camel.component.as2.configuration.edi-message-type

EDI 메시지의 콘텐츠 유형입니다. application/edifact, application/edi-x12 중 하나, application/edi-consent

 

ContentType

camel.component.as2.configuration.encrypting-algorithm

EDI 메시지를 암호화하는 데 사용되는 알고리즘입니다.

 

AS2EncryptionAlgorithm

camel.component.as2.configuration.encrypting-certificate-chain

EDI 메시지를 암호화하는 데 사용되는 인증서 체인입니다.

 

certificate[]

camel.component.as2.configuration.encrypting-private-key

EDI 메시지를 암호화하는 데 사용되는 키입니다.

 

PrivateKey

camel.component.as2.configuration.from

AS2 메시지의 From 헤더의 값입니다.

 

문자열

camel.component.as2.configuration.method-name

선택한 작업에 사용할 하위 작업

 

문자열

camel.component.as2.configuration.request-uri

EDI 메시지의 요청 URI입니다.

/

문자열

camel.component.as2.configuration.server

AS2 서버를 식별하는 서버 메시지 헤더에 포함된 값입니다.

Camel AS2 Server Endpoint

문자열

camel.component.as2.configuration.server-fqdn

서버의 정규화된 도메인 이름(FQDN)입니다. 끝점에서 보낸 메시지 ID에서 사용됩니다.

camel.apache.org

문자열

camel.component.as2.configuration.server-port-number

서버 포트 번호입니다.

 

정수

camel.component.as2.configuration.signed-receipt-mic-algorithms

MDN(Message dispostion notification)에서 반환된 MIC(메시지 무결성 검사)를 생성하도록 요청된 알고리즘 목록입니다.

 

string[]

camel.component.as2.configuration.signing-algorithm

EDI 메시지에 서명하는 데 사용되는 알고리즘입니다.

 

AS2SignatureAlgorithm

camel.component.as2.configuration.signing-certificate-chain

EDI 메시지에 서명하는 데 사용되는 인증서 체인입니다.

 

certificate[]

camel.component.as2.configuration.signing-private-key

EDI 메시지에 서명하는 데 사용되는 키입니다.

 

PrivateKey

camel.component.as2.configuration.subject

AS2 메시지의 주체 헤더 값입니다.

 

문자열

camel.component.as2.configuration.target-hostname

대상 호스트의 호스트 이름(IP 또는 DNS 이름)입니다.

 

문자열

camel.component.as2.configuration.target-port-number

대상 호스트의 포트 수입니다. -1은 스키마의 기본 포트를 나타냅니다.

 

정수

camel.component.as2.configuration.user-agent

AS2 사용자 에이전트를 식별하는 User-Agent 메시지 헤더에 포함된 값입니다.

Camel AS2 클라이언트 끝점

문자열

camel.component.as2.enabled

as2 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.as2.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

8.4. 클라이언트 끝점:

클라이언트 끝점은 엔드포인트 접두사 클라이언트 뒤에 메서드의 이름과 다음에 설명된 관련 옵션을 사용합니다. 엔드포인트 URI에는 접두사 클라이언트 가 있어야 합니다.

as2://client/method?[options]
Copy to Clipboard Toggle word wrap

필수가 아닌 엔드포인트 옵션은 [] 로 표시됩니다. 끝점에 대한 필수 옵션이 없는 경우 [] 옵션 세트 중 하나를 제공해야 합니다. 생산자 엔드포인트는 Camel Exchange In 메시지에 포함된 엔드포인트 옵션의 이름을 포함해야 하는 특수 옵션 inBody 를 사용할 수도 있습니다.

끝점 URI에서 또는 메시지 헤더에서 동적으로 끝점 옵션을 제공할 수 있습니다. 메시지 헤더 이름은 CamelAS2.<option> 형식이어야 합니다. inBody 옵션은 메시지 헤더를 덮어씁니다. 즉 inBody=option 의 endpoint 옵션은 CamelAS2.option 헤더를 재정의합니다.

끝점 URI 또는 메시지 헤더에 있는 옵션 defaultRequest에 대해 값이 제공되지 않으면 null 로 간주됩니다. null 값은 다른 옵션이 일치하는 엔드 포인트를 충족하지 않는 경우에만 사용됩니다.

AS2 API 오류가 발생하는 경우 끝점은 org.apache.http.HttpException 파생 예외를 사용하여 RuntimeCamelException을 throw합니다.

Expand
방법옵션결과 본문 유형

send

ediMessage, requestUri, subject, from, as2From, as2To, as2Message structureure, ediMessageContentType, ediMessageTransferEncoding, dispositionNotificationTo, signedReceiptMicAlgorithms

org.apache.http.protocol.HttpCoreContext

클라이언트의 URI 옵션

Expand
이름유형

ediMessage

문자열

requestUri

문자열

제목

문자열

from

문자열

as2From

문자열

as2To

문자열

as2MessageStructure

org.apache.camel.component.as2.api.AS2MessageStructure

ediMessageContentType

문자열

ediMessageTransferEncoding

문자열

dispositionNotificationTo

문자열

signedReceiptMicAlgorithms

string[]

8.5. 서버 끝점:

서버 끝점은 엔드포인트 접두사 서버 다음에 방법의 이름과 다음에 설명된 관련 옵션을 사용합니다. 엔드포인트 URI에는 접두사 서버 가 포함되어야 합니다.

as2://server/method?[options]
Copy to Clipboard Toggle word wrap

필수가 아닌 엔드포인트 옵션은 [] 로 표시됩니다. 끝점에 대한 필수 옵션이 없는 경우 [] 옵션 세트 중 하나를 제공해야 합니다. 생산자 엔드포인트는 Camel Exchange In 메시지에 포함된 엔드포인트 옵션의 이름을 포함해야 하는 특수 옵션 inBody 를 사용할 수도 있습니다.

끝점 URI에서 또는 메시지 헤더에서 동적으로 끝점 옵션을 제공할 수 있습니다. 메시지 헤더 이름은 CamelAS2.<option> 형식이어야 합니다. inBody 옵션은 메시지 헤더를 덮어씁니다. 즉 inBody=option 의 endpoint 옵션은 CamelAS2.option 헤더를 재정의합니다.

끝점 URI 또는 메시지 헤더에 있는 옵션 defaultRequest에 대해 값이 제공되지 않으면 null 로 간주됩니다. null 값은 다른 옵션이 일치하는 엔드 포인트를 충족하지 않는 경우에만 사용됩니다.

AS2 API 오류가 발생하는 경우 끝점은 org.apache.http.HttpException 파생 예외를 사용하여 RuntimeCamelException을 throw합니다.

Expand
방법옵션결과 본문 유형

listen

requestUriPattern

org.apache.http.protocol.HttpCoreContext

서버의 URI 옵션

Expand
이름유형

requestUriPattern

문자열

9장. 별표 구성 요소

Camel 버전 2.18로 사용 가능

별표 : 구성 요소를 사용하면 별표 -java를 사용하여 Asterisk PBX Server http://www.asterisk.org/ 를사용하여 쉽게 작업할 수 있습니다.

이 구성 요소는 Asterisk Manager Interface와 상호 작용하는 데 도움이 됩니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-asterisk</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

9.1. URI 형식

asterisk:name[?options]
Copy to Clipboard Toggle word wrap

9.2. 옵션

Asterisk 구성 요소에는 옵션이 없습니다.

Asterisk 엔드포인트는 URI 구문을 사용하여 구성됩니다.

asterisk:name
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

9.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

name

필수 논리 이름

 

문자열

9.2.2. 쿼리 매개변수 (8 매개변수:

Expand
이름설명기본값유형

호스트 이름 (일반)

필수 별표 서버의 호스트 이름

 

문자열

암호 (공용)

필수 로그인 암호

 

문자열

사용자 이름 (공용)

필수 로그인 사용자 이름

 

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

작업 (producer)

대기열 상태, sip 피어 또는 확장 상태 등 수행할 작업.

 

AsteriskAction

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

9.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.asterisk.enabled

별표 구성 요소 사용

true

부울

camel.component.asterisk.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

9.4. 동작

지원되는 동작은 다음과 같습니다.

  • QUEUE_STATUS, 대기열 상태
  • SIP_PEERS, List SIP Peers
  • EXTENSION_STATE, Check Extension Status

10장. Atmos 구성 요소

Camel 버전 2.15에서 사용 가능

Camel-AtmosApache Camel 구성 요소로, Atmos Client 를 사용하여 ViPR 개체 데이터 서비스로 작업할 수 있습니다.

from("atmos:foo/get?remotePath=/path").to("mock:test");
Copy to Clipboard Toggle word wrap

10.1. 옵션

Atmos 구성 요소는 아래 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

fullTokenId (security)

Atmos 클라이언트에 전달할 토큰 ID

 

문자열

secretKey (security)

Atmos 클라이언트에 전달할 비밀 키

 

문자열

URI (advanced)

Atmos 클라이언트에서 연결할 서버의 URI입니다.

 

문자열

sslValidation (security)

Atmos 클라이언트가 SSL 검증을 수행해야 하는지 여부

false

boolean

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Atmos 엔드포인트는 URI 구문을 사용하여 구성됩니다.

atmos:name/operation
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

10.1.1. 경로 매개 변수(2 매개변수):

Expand
이름설명기본값유형

name

Atmos 이름

 

문자열

작업

수행해야 하는 작업

 

AtmosOperation

10.1.2. 쿼리 매개변수(12 매개변수):

Expand
이름설명기본값유형

enableSslValidation (일반)

Atmos SSL 검증

false

boolean

fullTokenId (일반)

Atmos 클라이언트 fullTokenId

 

문자열

localPath (common)

파일 배치를 위한 로컬 경로

 

문자열

newRemotePath (common)

파일을 이동할 때 Atmos의 새 경로

 

문자열

쿼리 (일반)

Atmos에 대한 검색 쿼리

 

문자열

remotePath (common)

Atmos에 파일을 배치할 위치

 

문자열

secretKey (common)

Atmos 공유 보안

 

문자열

URI (공용)

Atomos 서버 uri

 

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

10.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 6 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.atmos.enabled

atmos 구성 요소 활성화

true

부울

camel.component.atmos.full-token-id

Atmos 클라이언트에 전달할 토큰 ID

 

문자열

camel.component.atmos.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.atmos.secret-key

Atmos 클라이언트에 전달할 비밀 키

 

문자열

camel.component.atmos.ssl-validation

Atmos 클라이언트가 SSL 검증을 수행해야 하는지 여부

false

부울

camel.component.atmos.uri

Atmos 클라이언트에서 연결할 서버의 URI입니다.

 

문자열

10.3. 종속 항목

camel 경로에서 Atmos를 사용하려면 이 데이터 형식을 구현하는 camel-atmos 에 종속성을 추가해야 합니다.

maven을 사용하는 경우 pom.xml에 다음을 추가하면 최신 및 가장 큰 릴리스의 버전 번호를 대체합니다(최신 버전의 다운로드 페이지 참조).

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-atmos</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

10.4. 통합

atmos 통합을 볼 때 하나의 유형의 소비자, GetConsumer가 있으며 이는 ScheduledPollConsumer 유형입니다.

  • Get

반면, 4 가지 유형의 생산자가 있습니다.

  • Get
  • Del
  • move
  • put

10.5. 예제

다음 예제는 테스트에서 가져옵니다.

from("atmos:foo/get?remotePath=/path").to("mock:test");
Copy to Clipboard Toggle word wrap

다음은 소비자 예입니다.Here is a consumer example. remotePath 는 데이터를 읽고 제작자 Underneath와 관련하여 camel exchange를 읽을 수있는 경로를 나타냅니다. 이 구성 요소는 이 구성 요소 및 기타 모든 작업에 대해 atmos 클라이언트 API를 사용합니다.

from("direct:start")
.to("atmos://get?remotePath=/dummy/dummy.txt")
.to("mock:result");
Copy to Clipboard Toggle word wrap

이 샘플은 Producer 샘플입니다. remotePath 는 ViPR 오브젝트 데이터 서비스에서 작업이 발생하는 경로를 나타냅니다. 생산자에서 작업(Get,Del,Move,Put)은 ViPR 오브젝트 데이터 서비스에서 실행되며 결과는 camel exchange 헤더에 설정됩니다.

작업에 대해 다음 헤더가 camel exhange에 설정되어 있습니다.

DOWNLOADED_FILE, DOWNLOADED_FILES, UPLOADED_FILE, UPLOADED_FILES, FOUND_FILES, DELETED_PATH, MOVED_PATH;
Copy to Clipboard Toggle word wrap

10.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기

11장. 대기 웹 소켓 구성 요소

Camel 버전 2.14로 사용 가능

대기 시간: 구성 요소는 Websocket을 통해 외부 클라이언트와 통신하는 서블릿에 대해 Websocket 기반 엔드포인트를 제공합니다(외부 클라이언트의 웹 소켓 연결을 수락하는 서블릿).
구성 요소는 SERVLET 구성 요소를 사용하며 Atmosphere 라이브러리를 사용하여 다양한 서블릿 컨테이너(예: Jetty, Tomcat, …​에서 Websocket 전송)를 지원합니다.

포함된 Jetty 서버를 시작하는 Websocket 구성 요소와 달리 이 구성 요소는 컨테이너의 서블릿 공급자를 사용합니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-atmosphere-websocket</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

11.1. 대기 시간-웹 소켓 옵션

Atmosphere Websocket 구성 요소는 아래 나열된 9가지 옵션을 지원합니다.

Expand
이름설명기본값유형

서블릿 이름 (consumer)

사용할 서블릿의 기본 이름입니다. 기본 이름은 CamelServlet입니다.

CamelServlet

문자열

httpRegistry (consumer)

사용자 지정 org.apache.camel.component.servlet.HttpRegistry를 사용합니다.

 

HttpRegistry

attachmentMultipart Binding (consumer)

Camel Exchange의 첨부 파일로 multipart/form-data를 자동 바인딩할지 여부입니다. attachment attachmentMultipartBinding=true 및 disableStreamCache=false 옵션이 함께 작동할 수 없습니다. AttachmentMultipartBinding을 사용하려면 disableStreamCache를 제거합니다. Servlet을 사용할 때 이를 활성화하려면 서블릿별 구성이 필요할 수 있으므로 기본적으로 이 기능이 꺼집니다.

false

boolean

fileNameExtWhitelist (consumer)

업로드된 파일을 수락하기 위해 허용된 파일 이름 확장자의 허용 목록. txt,xml과 같은 여러 확장 기능을 쉼표로 구분할 수 있습니다.

 

문자열

httpBinding (advanced)

사용자 지정 HttpBinding을 사용하여 Camel 메시지와 HttpClient 간의 매핑을 제어합니다.

 

HttpBinding

httpConfiguration (advanced)

공유 HttpConfiguration을 기본 구성으로 사용하려면 다음을 수행합니다.

 

HttpConfiguration

JavaSerialized Object (advanced) 허용

요청이 context-type=application/x-java-serialized-object를 사용할 때 java serialization을 허용할지 여부입니다. 이 설정은 기본적으로 꺼져 있습니다. 이를 활성화하면 Java가 요청에서 Java로 들어오는 데이터를 역직렬화하고 잠재적인 보안 위험이 될 수 있다는 점에 유의하십시오.

false

boolean

headerFilterStrategy (filter)

사용자 지정 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로 헤더를 필터링하려면 다음을 수행합니다.

 

HeaderFilterStrategy

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Atmosphere Websocket 끝점은 URI 구문을 사용하여 구성됩니다.

atmosphere-websocket:servicePath
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

11.1.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

servicePath

필수 websocket 엔드 포인트 이름

 

문자열

11.1.2. 쿼리 매개변수(38 매개변수):

Expand
이름설명기본값유형

청크됨 (공용)

이 옵션이 false이면 Servlet은 HTTP 스트리밍을 비활성화하고 응답에 Content-length 헤더를 설정합니다.

true

boolean

disableStreamCache (common)

Servlet의 원시 입력 스트림이 캐시되었거나 그렇지 않은지 여부를 결정합니다. (Camel은 스트림을 메모리/오버 흐름에서 파일, 스트림 캐싱) 캐시로 스트림을 읽습니다. 기본적으로 Camel은 Servlet 입력 스트림을 캐시하여 Camel이 스트림에서 모든 데이터를 검색할 수 있도록 여러 번 읽을 수 있도록 지원합니다. 그러나 예를 들어 파일 또는 기타 영구 저장소로 직접 스트리밍하는 것과 같은 원시 스트림에 액세스해야 할 때 이 옵션을 true로 설정할 수 있습니다. DefaultHttpBinding은 요청 입력 스트림을 스트림 캐시에 복사하고 스트림을 여러 번 읽는 것을 지원하기 위해 이 옵션이 false인 경우 메시지 본문에 배치합니다. Servlet을 사용하여 끝점을 프록시하는 경우 메시지 페이로드를 여러 번 읽을 필요가 없는 경우 이 옵션을 사용하여 성능을 향상시킬 수 있습니다. http/http4 생산자는 기본적으로 응답 본문 스트림을 캐시합니다. 이 옵션을 true로 설정하면 생산자가 응답 본문 스트림을 캐시하지 않지만 응답 스트림을 메시지 본문으로 사용합니다.

false

boolean

headerFilterStrategy (common)

사용자 지정 HeaderFilterStrategy를 사용하여 Camel 메시지와의 헤더를 필터링합니다.

 

HeaderFilterStrategy

sendToAll (일반)

모든 (브로드캐스트)로 보내거나 단일 수신자에게 보낼지 여부입니다.

false

boolean

transferException (일반)

활성화된 경우 소비자 측에서 Exchange 실패 처리 및 원인 Exception이 다시 직렬화 된 응답에서 응답에서 애플리케이션/x-java-serialized-object 콘텐츠 유형으로 다시 전송되었습니다. 생산자 측에서 예외는 HttpOperationFailedException 대신 is로 deserialize되고 throw됩니다. 원인된 예외는 직렬화해야 합니다. 이 설정은 기본적으로 꺼져 있습니다. 이를 활성화하면 Java가 요청에서 Java로 들어오는 데이터를 역직렬화하고 잠재적인 보안 위험이 될 수 있다는 점에 유의하십시오.

false

boolean

UseStreaming (common)

스트리밍이 여러 개의 텍스트 조각으로 데이터를 보낼 수 있도록 합니다.

false

boolean

httpBinding (일반)

사용자 지정 HttpBinding을 사용하여 Camel 메시지와 HttpClient 간의 매핑을 제어합니다.

 

HttpBinding

async (consumer)

비동기 모드에서 작동하도록 소비자 구성

false

boolean

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

httpMethodRestrict (consumer)

HttpMethod가 GET/POST/PUT 등과 같은 경우에만 사용할 수 있도록 하는 데 사용됩니다. 여러 메서드를 쉼표로 구분하여 지정할 수 있습니다.

 

문자열

matchOnUriPrefix (consumer)

정확한 일치 항목이 없는 경우 소비자가 URI 접두사와 일치하여 대상 소비자를 찾아야 하는지 여부입니다.

false

boolean

responseBufferSize (consumer)

javax.servlet.ServletResponse에서 사용자 정의 버퍼 크기를 사용하려면 다음을 수행합니다.

 

정수

서블릿 이름 (consumer)

사용할 서블릿의 이름입니다.

CamelServlet

문자열

attachmentMultipartBinding (consumer)

Camel Exchange의 첨부 파일로 multipart/form-data를 자동 바인딩할지 여부입니다. attachment attachmentMultipartBinding=true 및 disableStreamCache=false 옵션이 함께 작동할 수 없습니다. AttachmentMultipartBinding을 사용하려면 disableStreamCache를 제거합니다. Servlet을 사용할 때 이를 활성화하려면 서블릿별 구성이 필요할 수 있으므로 기본적으로 이 기능이 꺼집니다.

false

boolean

eagerCheckContentAvailable (consumer)

content-length 헤더가 0인지 아니면 존재하지 않는 경우 HTTP 요청에 콘텐츠가 있는지 확인할 수 있습니다. HTTP 클라이언트가 스트리밍된 데이터를 전송하지 않는 경우 이 기능을 설정할 수 있습니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

fileNameExtWhitelist (consumer)

업로드된 파일을 수락하기 위해 허용된 파일 이름 확장자의 허용 목록. txt,xml과 같은 여러 확장 기능을 쉼표로 구분할 수 있습니다.

 

문자열

optionsEnabled (consumer)

Servlet 소비자에 대해 HTTP 옵션 사용 여부를 지정합니다.Specifies whether to enable HTTP OPTIONS for this Servlet consumer. 기본적으로 옵션 설정은 해제되어 있습니다.By default, OPTIONS is turned off.

false

boolean

traceEnabled (consumer)

이 서블릿 소비자에 대해 HTTP TRACE를 활성화할지 여부를 지정합니다.Specifies whether to enable HTTP TRACE for this Servlet consumer. 기본적으로 TRACE가 해제됩니다.By default, TRACE is turned off.

false

boolean

bridgeEndpoint (producer)

옵션이 true인 경우 HttpProducer는 Exchange.HTTP_URI 헤더를 무시하고 요청 끝점의 URI를 사용합니다. 또한 causesExceptionOnFailure 옵션을 false로 설정하여 HttpProducer가 모든 오류 응답을 다시 보낼 수 있습니다.

false

boolean

connectionClose (producer)

Connection Close 헤더를 HTTP 요청에 추가해야 하는지 여부를 지정합니다. 기본적으로 연결 Close는 false입니다.

false

boolean

copyHeaders (producer)

이 옵션이 true이면 IN 교환 헤더가 복사 전략에 따라 OUT 교환 헤더에 복사됩니다. 이를 false로 설정하면 HTTP 응답의 헤더만 포함할 수 있습니다( IN 헤더를 전파하지 않음).

true

boolean

httpMethod (producer)

사용할 HTTP 메서드를 구성합니다. HttpMethod 헤더가 설정된 경우 이 옵션을 재정의할 수 없습니다.

 

HttpMethods

ignoreResponseBody (producer)

이 옵션이 true이면 http 생산자가 응답 본문을 읽지 않고 입력 스트림을 캐시합니다.

false

boolean

preserveHostHeader (producer)

옵션이 true인 경우 HttpProducer는 현재 교환 호스트 헤더에 포함된 값으로 Host 헤더를 설정합니다. 다운스트림 서버에서 수신한 Host 헤더가 업스트림 클라이언트에서 호출한 URL을 반영하려는 역방향 프록시 애플리케이션에서 유용한 경우 호스트 헤더를 사용하여 프록시된 서비스에 대한 정확한 URL을 생성할 수 있습니다.

false

boolean

throwExceptionOnFailure (producer)

원격 서버에서 응답이 실패한 경우 HttpOperationFailedException throw를 비활성화하는 옵션입니다. 이를 통해 HTTP 상태 코드와 관계없이 모든 응답을 얻을 수 있습니다.

true

boolean

cookieHandler (producer)

HTTP 세션을 유지 관리하도록 쿠키 처리기 구성

 

CookieHandler

okStatusCodeRange (producer)

상태 코드는 성공 응답으로 간주됩니다. 값이 포함됩니다. 여러 범위를 쉼표로 구분하여 정의할 수 있습니다(예: 200-204,209,301-304). 각 범위는 단일 숫자 또는 대시가 포함된 from-to여야 합니다.

200-299

문자열

urlRewrite (producer)

더 이상 사용되지 않는 사용자 지정 org.apache.camel.component.http.UrlRewrite를 통해 URL을 브리지/proxy 엔드포인트에서 다시 작성할 수 있습니다. 자세한 내용은 http://camel.apache.org/urlrewrite.html에서 참조하십시오.

 

UrlRewrite

mapHttpMessageBody (advanced)

이 옵션이 true이면 교환의 IN 교환 본문이 HTTP 본문에 매핑됩니다. 이를 false로 설정하면 HTTP 매핑이 발생하지 않습니다.

true

boolean

mapHttpMessageFormUrl EncodedBody (advanced)

이 옵션이 true이면 교환의 양식 코딩된 본문이 HTTP에 매핑됩니다.If this option is true, IN exchange Form Encoded body of the exchange will be mapped to HTTP. 이를 false로 설정하면 HTTP 양식 Encoded 본문 매핑이 발생하지 않습니다.

true

boolean

mapHttpMessageHeaders (advanced)

이 옵션이 true이면 교환의 IN 교환 헤더가 HTTP 헤더에 매핑됩니다. 이를 false로 설정하면 HTTP 헤더 매핑이 발생하지 않습니다.

true

boolean

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

proxyAuthScheme (proxy)

사용할 프록시 인증 스키마

 

문자열

proxyHost (proxy)

사용할 프록시 호스트 이름

 

문자열

proxyPort (proxy)

사용할 프록시 포트

 

int

authHost (security)

NTML에서 사용할 인증 호스트

 

문자열

11.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 10 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.atmosphere-websocket.allow-java-serialized-object

요청이 context-type=application/x-java-serialized-object를 사용할 때 java serialization을 허용할지 여부입니다. 이 설정은 기본적으로 꺼져 있습니다. 이를 활성화하면 Java가 요청에서 Java로 들어오는 데이터를 역직렬화하고 잠재적인 보안 위험이 될 수 있다는 점에 유의하십시오.

false

부울

camel.component.atmosphere-websocket.attachment-multipart-binding

Camel Exchange의 첨부 파일로 multipart/form-data를 자동 바인딩할지 여부입니다. attachment attachmentMultipartBinding=true 및 disableStreamCache=false 옵션이 함께 작동할 수 없습니다. AttachmentMultipartBinding을 사용하려면 disableStreamCache를 제거합니다. Servlet을 사용할 때 이를 활성화하려면 서블릿별 구성이 필요할 수 있으므로 기본적으로 이 기능이 꺼집니다.

false

부울

camel.component.atmosphere-websocket.enabled

대기 웹 소켓 구성 요소 사용

true

부울

camel.component.atmosphere-websocket.file-name-ext-whitelist

업로드된 파일을 수락하기 위해 허용된 파일 이름 확장자의 허용 목록. txt,xml과 같은 여러 확장 기능을 쉼표로 구분할 수 있습니다.

 

문자열

camel.component.atmosphere-websocket.header-filter-strategy

사용자 지정 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로 헤더를 필터링하려면 다음을 수행합니다. 옵션은 org.apache.camel.spi.HeaderFilterStrategy 유형입니다.

 

문자열

camel.component.atmosphere-websocket.http-binding

사용자 지정 HttpBinding을 사용하여 Camel 메시지와 HttpClient 간의 매핑을 제어합니다. 옵션은 org.apache.camel.http.common.HttpBinding 유형입니다.

 

문자열

camel.component.atmosphere-websocket.http-configuration

공유 HttpConfiguration을 기본 구성으로 사용하려면 다음을 수행합니다. 옵션은 org.apache.camel.http.common.HttpConfiguration 유형입니다.

 

문자열

camel.component.atmosphere-websocket.http-registry

사용자 지정 org.apache.camel.component.servlet.HttpRegistry를 사용합니다. 옵션은 org.apache.camel.component.servlet.HttpRegistry 유형입니다.

 

문자열

camel.component.atmosphere-websocket.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.atmosphere-websocket.servlet-name

사용할 서블릿의 기본 이름입니다. 기본 이름은 CamelServlet입니다.

CamelServlet

문자열

11.3. URI 형식

atmosphere-websocket:///relative path[?options]
Copy to Clipboard Toggle word wrap

11.4. Websocket을 통해 데이터 읽기 및 쓰기

atmopshere-websocket 끝점은 끝점이 생산자 또는 소비자로 구성되어 있는지 여부에 따라 소켓에 데이터를 쓰거나 소켓에서 읽을 수 있습니다.

11.5. 데이터 읽기 또는 쓰기를 위한 URI 구성

아래 경로에서 Camel은 지정된 websocket 연결에서 읽습니다.

from("atmosphere-websocket:///servicepath")
        .to("direct:next");
Copy to Clipboard Toggle word wrap

다음과 같은 Spring 샘플이 있습니다.

<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="atmosphere-websocket:///servicepath"/>
    <to uri="direct:next"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

아래 경로에서 Camel은 지정된 websocket 연결에서 읽습니다.

from("direct:next")
        .to("atmosphere-websocket:///servicepath");
Copy to Clipboard Toggle word wrap

다음과 같은 Spring 샘플이 있습니다.

<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="direct:next"/>
    <to uri="atmosphere-websocket:///servicepath"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

 

11.6. 예를 들면 다음과 같습니다.

12장. atom 구성 요소

Camel 버전 1.2로 사용 가능

atom: 구성 요소는 Atom 피드를 폴링하는 데 사용됩니다.

Camel은 기본적으로 60초마다 피드를 폴링합니다.
참고: 현재 구성 요소는 폴링(시간) 피드만 지원합니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-atom</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

12.1. URI 형식

atom://atomUri[?options]
Copy to Clipboard Toggle word wrap

여기서 atomUri 는 폴링할 Atom 피드에 대한 URI입니다.

12.2. 옵션

Atom 구성 요소에는 옵션이 없습니다.

Atom 끝점은 URI 구문을 사용하여 구성됩니다.

atom:feedUri
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

12.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

feedUri

폴링할 피드에 대한 URI입니다.

 

문자열

12.2.2. 쿼리 매개변수(27 매개변수):

Expand
이름설명기본값유형

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

feedHeader (consumer)

feed 오브젝트를 헤더로 추가할지 여부를 설정합니다.

true

boolean

필터 (consumer)

필터링을 사용할지 아니면 항목 중 사용할지 여부를 설정합니다.Sets whether to use filtering or not of the entries.

true

boolean

lastUpdate (consumer)

원자 피드의 항목을 필터링하는 데 사용할 타임스탬프를 설정합니다. 이 옵션은 splitEntries와 함께 사용할 수 있습니다.

 

날짜

암호 (consumer)

HTTP 피드에서 폴링할 때 기본 인증에 사용할 암호를 설정합니다.

 

문자열

sendEmptyMessageWhenIdle (consumer)

폴링 소비자가 파일을 폴링하지 않은 경우 이 옵션을 활성화하여 빈 메시지( 본문 없음)를 대신 보낼 수 있습니다.

false

boolean

sortEntries (consumer)

게시된 날짜별로 항목을 정렬할지 여부를 설정합니다. splitEntries = true일 때만 작동합니다.

false

boolean

splitEntries (consumer)

항목을 개별적으로 보내거나 전체 피드를 단일 메시지로 보내야 하는지 여부를 설정합니다.

true

boolean

throttleEntries (consumer)

단일 피드 폴링에서 식별된 모든 항목을 즉시 전달해야 하는지 여부를 설정합니다. true인 경우 consumer.delay마다 하나의 항목만 처리됩니다. splitEntries = true인 경우에만 적용됩니다.

true

boolean

사용자 이름 (consumer)

HTTP 피드에서 폴링할 때 기본 인증에 사용할 사용자 이름을 설정합니다.

 

문자열

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

pollStrategy (consumer)

플러그형 org.apache.camel.PollingConsumerPollingStrategy를 사용하면 Camel에서 Exchange를 생성하고 라우팅하기 전에 폴링 작업 중에 일반적으로 발생한 오류 처리를 제어하는 사용자 정의 구현을 제공할 수 있습니다.

 

PollingConsumerPoll Strategy

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

backoffErrorThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 오류 폴링(일부 오류 발생) 수입니다.

 

int

backoffIdleThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 유휴 폴링 수입니다.

 

int

backoffMultiplier (scheduler)

예약된 폴링 소비자 백오프가 연속된 여러 개의 유휴/errors가 있는 경우 해당 행에 사용할 수 있습니다. multiplier는 다음 실제 시도가 다시 발생하기 전에 건너뛸 폴링 수입니다. 이 옵션을 사용하는 경우 backoffIdleThreshold 및/또는 backoffErrorThreshold도 구성해야 합니다.

 

int

지연 (scheduler)

다음 폴링보다 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

500

long

greedy (scheduler)

greedy가 활성화된 경우 ScheduledPollConsumer는 이전 실행이 1개 이상의 메시지를 폴링하면 즉시 다시 실행됩니다.

false

boolean

initialDelay (scheduler)

첫 번째 폴링이 시작되기 전까지의 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

1000

long

runLoggingLevel (scheduler)

소비자는 폴링할 때 시작/완료 로그 행을 기록합니다. 이 옵션을 사용하면 로깅 수준을 구성할 수 있습니다.

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

소비자에 사용할 사용자 지정/공유 스레드 풀을 구성할 수 있습니다. 기본적으로 각 소비자는 자체 스레드 스레드 풀이 있습니다.

 

ScheduledExecutor Service

스케줄러 (scheduler)

camel-spring 또는 camel-quartz2 구성 요소에서 cron 스케줄러를 사용하려면

none

ScheduledPollConsumer Scheduler

스케줄러 속성 (scheduler)

사용자 지정 스케줄러 또는 Quartz2, Spring 기반 스케줄러를 사용할 때 추가 속성을 구성하려면 다음을 수행합니다.

 

map

StartScheduler (scheduler)

스케줄러가 자동으로 시작되어야 하는지 여부입니다.

true

boolean

timeUnit (scheduler)

initialDelay 및 지연 옵션의 시간 단위입니다.

밀리초

TimeUnit

UseFixedDelay (scheduler)

고정 지연 또는 고정 속도가 사용되는 경우 제어합니다. 자세한 내용은 JDK의 ScheduledExecutorService를 참조하십시오.

true

boolean

12.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.atom.enabled

atom 구성 요소 활성화

true

부울

camel.component.atom.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

다음 형식 ?option=value&option=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

12.4. 교환 데이터 형식

Camel은 반환된 Exchange 의 In body를 항목으로 설정합니다. splitEntries 플래그에 따라 Camel은 하나의 Entry 또는 List<Entry>를 반환합니다.

Expand
옵션동작

splitEntries

true

현재 처리 중인 피드의 단일 항목만 exchange.in.body(Entry)로 설정됩니다.

splitEntries

false

피드의 전체 항목 목록 set: exchange.in.body(List<Entry>)

Camel은 In 헤더에 feed 오브젝트 설정할 수 있습니다(이를 비활성화하려면 feedHeader 옵션 참조):

12.5. 메시지 헤더

Camel atom은 이러한 헤더를 사용합니다.

Expand
header설명

CamelAtomFeed

org.apache.abdera.model.Feed 오브젝트를 사용하는 경우 이 헤더로 설정됩니다.

12.6. 샘플

이 샘플에서는 James Strachan의 블로그를 폴링합니다.

from("atom://http://macstrac.blogspot.com/feeds/posts/default").to("seda:feeds");
Copy to Clipboard Toggle word wrap

이 샘플에서는 SEDA 큐로 우리가 원하는 좋은 블로그만 필터링하려고 합니다. 샘플은 또한 Camel 독립 실행형 설정, 컨테이너 내에서 실행되지 않거나 Spring을 사용하는 방법을 보여줍니다.

12.7. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • RSS

13장. Atomix Map 구성 요소

Camel 버전 2.20에서 사용 가능

camel atomix-map 구성 요소를 사용하면 Atomix의 분산 맵 컬렉션을 사용할 수 있습니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml에 추가해야 합니다.

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-atomix</artifactId>
        <version>${camel-version}</version>
    </dependency>
Copy to Clipboard Toggle word wrap

13.1. URI 형식

    atomix-map:mapName
Copy to Clipboard Toggle word wrap

13.2. 옵션

Atomix Map 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (일반)

공유 구성 요소 구성

 

AtomixMapConfiguration

Atomix (common)

공유 AtomixClient 인스턴스

 

AtomixClient

노드 (공용)

AtomixClient가 연결해야 하는 노드

 

list

configurationUri (common)

AtomixClient 설정 경로

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Atomix Map 끝점은 URI 구문을 사용하여 구성됩니다.

atomix-map:resourceName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

13.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

resourceName

필수 리소스 이름

 

문자열

13.2.2. 쿼리 매개변수(18 매개변수):

Expand
이름설명기본값유형

Atomix (common)

사용할 Atomix 인스턴스

 

Atomix

configurationUri (common)

Atomix 구성 uri입니다.

 

문자열

defaultAction (common)

기본 동작입니다.

PUT

동작

(일반)

헤더에 설정되지 않거나 특정 키에 대한 이벤트를 수신 대기하는 경우 사용할 키입니다.

 

개체

노드 (공용)

클러스터를 구성하는 노드의 주소입니다.

 

문자열

resultHeader (일반)

wil이 결과를 전달하는 헤더입니다.

 

문자열

전송 (일반)

Atomix 전송을 설정합니다.

io.atomix.catalyst.transport.netty.NettyTransport

전송

TTL ( 일반)

리소스 ttl.

 

long

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

defaultResourceConfig (고급)

클러스터의 기본 리소스 구성입니다.

 

속성

defaultResourceOptions (고급)

로컬 기본 리소스 옵션입니다.

 

속성

임시 (advanced)

로컬 멤버가 그룹을 PersistentMember로 조인해야 하는지 여부를 설정합니다. ephemeral로 설정하면 로컬 멤버가 자동 생성된 ID를 수신하므로 로컬 멤버는 무시됩니다.

false

boolean

ReadConsistency (advanced)

읽기 일관성 수준입니다.

 

ReadConsistency

resourceConfigs (고급)

클러스터 전체 리소스 구성.

 

map

resourceOptions (고급)

로컬 리소스 구성

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

13.3. Spring Boot Auto-Configuration

구성 요소는 아래에 나열된 9 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.atomix-map.atomix

공유 AtomixClient 인스턴스입니다. 옵션은 io.atomix.AtomixClient 유형입니다.

 

문자열

camel.component.atomix-map.configuration-uri

AtomixClient 설정 경로

 

문자열

camel.component.atomix-map.configuration.default-action

기본 동작입니다.

 

AtomixMap$Action

camel.component.atomix-map.configuration.key

헤더에 설정되지 않거나 특정 키에 대한 이벤트를 수신 대기하는 경우 사용할 키입니다.

 

개체

camel.component.atomix-map.configuration.result-header

wil이 결과를 전달하는 헤더입니다.

 

문자열

camel.component.atomix-map.configuration.ttl

리소스 ttl.

 

long

camel.component.atomix-map.enabled

atomix-map 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.atomix-map.nodes

AtomixClient가 연결해야 하는 노드

 

list

camel.component.atomix-map.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

13.4. headers

Expand
이름유형설명

CamelAtomixResourceAction

AtomixMap.Action

  • PUT
  • PUT_IF_ABSENT
  • GET
  • CLEAR
  • SIZE
  • CONTAINS_KEY
  • CONTAINS_VALUE
  • IS_EMPTY
  • ENTRY_SET
  • REMOVE
  • REPLACE

수행할 작업

CamelAtomixResourceKey

개체

-

작업할 키

CamelAtomixResourceValue

개체

-

값이 없는 경우 In Body를 사용합니다.

CamelAtomixResourceOldValue

개체

-

이전 값

CamelAtomixResourceTTL

문자열 / long

-

항목 TTL

CamelAtomixResourceReadConsistency

ReadConsistency

  • ATOMIC
  • ATOMIC_LEASE
  • 순차
  • LOCAL

읽기 일관성 수준

13.5. Atomix 클러스터에 연결하도록 구성 요소 구성

참여할 Atomix 클러스터의 노드는 몇 가지 예와 같이 끝점 또는 구성 요소 수준 (권장)에서 se가 될 수 있습니다.

  • endpoint:

    <beans xmlns="...">
        <camelContext xmlns="http://camel.apache.org/schema/spring">
            <from uri="direct:start"/>
                <to uri="atomix-map:myMap?nodes=node-1.atomix.cluster:8700,node-2.atomix.cluster:8700"/>
            </route>
        </camelContext>
    </beans>
    Copy to Clipboard Toggle word wrap
  • 구성 요소:

    <beans xmlns="...">
        <bean id="atomix-map" class="org.apache.camel.component.atomix.client.map.AtomixMapComponent">
            <property name="nodes" value="nodes=node-1.atomix.cluster:8700,node-2.atomix.cluster:8700"/>
        </bean>
    
        <camelContext xmlns="http://camel.apache.org/schema/spring">
            <from uri="direct:start"/>
                <to uri="atomix-map:myMap"/>
            </route>
        </camelContext>
    </beans>
    Copy to Clipboard Toggle word wrap

13.6. 사용 예:

  • PUT 1초의 TTL이 있는 요소:

    FluentProducerTemplate.on(context)
        .withHeader(AtomixClientConstants.RESOURCE_ACTION, AtomixMap.Action.PUT)
        .withHeader(AtomixClientConstants.RESOURCE_KEY, key)
        .withHeader(AtomixClientConstants.RESOURCE_TTL, "1s")
        .withBody(val)
        .to("direct:start")
        .send();
    Copy to Clipboard Toggle word wrap

14장. Atomix Messaging 구성 요소

Camel 버전 2.20에서 사용 가능

camel atomix-messaging 구성 요소를 사용하면 Atomix의 그룹 메시징을 사용할 수 있습니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml에 추가해야 합니다.

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-atomix</artifactId>
        <version>${camel-version}</version>
    </dependency>
Copy to Clipboard Toggle word wrap

14.1. URI 형식

    atomix-messaging:group
Copy to Clipboard Toggle word wrap

Atomix Messaging 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (일반)

공유 구성 요소 구성

 

AtomixMessaging 구성

Atomix (common)

공유 AtomixClient 인스턴스

 

AtomixClient

노드 (공용)

AtomixClient가 연결해야 하는 노드

 

list

configurationUri (common)

AtomixClient 설정 경로

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Atomix Messaging 끝점은 URI 구문을 사용하여 구성됩니다.

atomix-messaging:resourceName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

14.1.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

resourceName

필수 리소스 이름

 

문자열

14.1.2. 쿼리 매개변수(19 매개변수):

Expand
이름설명기본값유형

Atomix (common)

사용할 Atomix 인스턴스

 

Atomix

broadcastType (일반)

broadcast type입니다.

ALL

BroadcastType

channelName (common)

메시징 채널 이름

 

문자열

configurationUri (common)

Atomix 구성 uri입니다.

 

문자열

defaultAction (common)

기본 동작입니다.

DIRECT

동작

memberName (common)

Atomix 그룹 멤버 이름

 

문자열

노드 (공용)

클러스터를 구성하는 노드의 주소입니다.

 

문자열

resultHeader (일반)

wil이 결과를 전달하는 헤더입니다.

 

문자열

전송 (일반)

Atomix 전송을 설정합니다.

io.atomix.catalyst.transport.netty.NettyTransport

전송

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

defaultResourceConfig (고급)

클러스터의 기본 리소스 구성입니다.

 

속성

defaultResourceOptions (고급)

로컬 기본 리소스 옵션입니다.

 

속성

임시 (advanced)

로컬 멤버가 그룹을 PersistentMember로 조인해야 하는지 여부를 설정합니다. ephemeral로 설정하면 로컬 멤버가 자동 생성된 ID를 수신하므로 로컬 멤버는 무시됩니다.

false

boolean

ReadConsistency (advanced)

읽기 일관성 수준입니다.

 

ReadConsistency

resourceConfigs (고급)

클러스터 전체 리소스 구성.

 

map

resourceOptions (고급)

로컬 리소스 구성

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

14.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 10 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.atomix-messaging.atomix

공유 AtomixClient 인스턴스입니다. 옵션은 io.atomix.AtomixClient 유형입니다.

 

문자열

camel.component.atomix-messaging.configuration-uri

AtomixClient 설정 경로

 

문자열

camel.component.atomix-messaging.configuration.broadcast-type

broadcast type입니다.

 

AtomixMessaging$ BroadcastType

camel.component.atomix-messaging.configuration.channel-name

메시징 채널 이름

 

문자열

camel.component.atomix-messaging.configuration.default-action

기본 동작입니다.

 

AtomixMessaging$Action

camel.component.atomix-messaging.configuration.member-name

Atomix 그룹 멤버 이름

 

문자열

camel.component.atomix-messaging.configuration.result-header

wil이 결과를 전달하는 헤더입니다.

 

문자열

camel.component.atomix-messaging.enabled

atomix-messaging 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.atomix-messaging.nodes

AtomixClient가 연결해야 하는 노드

 

list

camel.component.atomix-messaging.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

15장. Atomix MultiMap 구성 요소

Camel 버전 2.20에서 사용 가능

camel atomix-multimap 구성 요소를 사용하면 Atomix의 Distributed MultiMap 컬렉션을 사용할 수 있습니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml에 추가해야 합니다.

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-atomix</artifactId>
        <version>${camel-version}</version>
    </dependency>
Copy to Clipboard Toggle word wrap

15.1. URI 형식

    atomix-multimap:multiMapName
Copy to Clipboard Toggle word wrap

Atomix MultiMap 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (consumer)

공유 구성 요소 구성

 

AtomixMultiMap 구성

Atomix (consumer)

공유 AtomixClient 인스턴스

 

AtomixClient

노드 (consumer)

AtomixClient가 연결해야 하는 노드

 

list

configurationUri (consumer)

AtomixClient 설정 경로

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Atomix MultiMap 끝점은 URI 구문을 사용하여 구성됩니다.

atomix-multimap:resourceName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

15.1.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

resourceName

필수 리소스 이름

 

문자열

15.1.2. 쿼리 매개변수(18 매개변수):

Expand
이름설명기본값유형

Atomix (consumer)

사용할 Atomix 인스턴스

 

Atomix

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

configurationUri (consumer)

Atomix 구성 uri입니다.

 

문자열

defaultAction (consumer)

기본 동작입니다.

PUT

동작

(consumer)

헤더에 설정되지 않거나 특정 키에 대한 이벤트를 수신 대기하는 경우 사용할 키입니다.

 

개체

노드 (consumer)

클러스터를 구성하는 노드의 주소입니다.

 

문자열

resultHeader (consumer)

wil이 결과를 전달하는 헤더입니다.

 

문자열

전송 (consumer)

Atomix 전송을 설정합니다.

io.atomix.catalyst.transport.netty.NettyTransport

전송

TTL ( consumer)

리소스 ttl.

 

long

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

defaultResourceConfig (고급)

클러스터의 기본 리소스 구성입니다.

 

속성

defaultResourceOptions (고급)

로컬 기본 리소스 옵션입니다.

 

속성

임시 (advanced)

로컬 멤버가 그룹을 PersistentMember로 조인해야 하는지 여부를 설정합니다. ephemeral로 설정하면 로컬 멤버가 자동 생성된 ID를 수신하므로 로컬 멤버는 무시됩니다.

false

boolean

ReadConsistency (advanced)

읽기 일관성 수준입니다.

 

ReadConsistency

resourceConfigs (고급)

클러스터 전체 리소스 구성.

 

map

resourceOptions (고급)

로컬 리소스 구성

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

15.2. Spring Boot Auto-Configuration

구성 요소는 아래에 나열된 9 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.atomix-multimap.atomix

공유 AtomixClient 인스턴스입니다. 옵션은 io.atomix.AtomixClient 유형입니다.

 

문자열

camel.component.atomix-multimap.configuration-uri

AtomixClient 설정 경로

 

문자열

camel.component.atomix-multimap.configuration.default-action

기본 동작입니다.

 

AtomixMultiMap$Action

camel.component.atomix-multimap.configuration.key

헤더에 설정되지 않거나 특정 키에 대한 이벤트를 수신 대기하는 경우 사용할 키입니다.

 

개체

camel.component.atomix-multimap.configuration.result-header

wil이 결과를 전달하는 헤더입니다.

 

문자열

camel.component.atomix-multimap.configuration.ttl

리소스 ttl.

 

long

camel.component.atomix-multimap.enabled

atomix-multimap 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.atomix-multimap.nodes

AtomixClient가 연결해야 하는 노드

 

list

camel.component.atomix-multimap.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

16장. Atomix Queue 구성 요소

Camel 버전 2.20에서 사용 가능

camel atomix-queue 구성 요소를 사용하면 Atomix의 분산 대기열 컬렉션을 사용할 수 있습니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml에 추가해야 합니다.

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-atomix</artifactId>
        <version>${camel-version}</version>
    </dependency>
Copy to Clipboard Toggle word wrap

16.1. URI 형식

    atomix-queue:queueName
Copy to Clipboard Toggle word wrap

Atomix Queue 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (일반)

공유 구성 요소 구성

 

AtomixQueue 구성

Atomix (common)

공유 AtomixClient 인스턴스

 

AtomixClient

노드 (공용)

AtomixClient가 연결해야 하는 노드

 

list

configurationUri (common)

AtomixClient 설정 경로

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Atomix Queue 끝점은 URI 구문을 사용하여 구성됩니다.

atomix-queue:resourceName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

16.1.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

resourceName

필수 리소스 이름

 

문자열

16.1.2. 쿼리 매개변수(16 매개변수):

Expand
이름설명기본값유형

Atomix (common)

사용할 Atomix 인스턴스

 

Atomix

configurationUri (common)

Atomix 구성 uri입니다.

 

문자열

defaultAction (common)

기본 동작입니다.

ADD

동작

노드 (공용)

클러스터를 구성하는 노드의 주소입니다.

 

문자열

resultHeader (일반)

wil이 결과를 전달하는 헤더입니다.

 

문자열

전송 (일반)

Atomix 전송을 설정합니다.

io.atomix.catalyst.transport.netty.NettyTransport

전송

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

defaultResourceConfig (고급)

클러스터의 기본 리소스 구성입니다.

 

속성

defaultResourceOptions (고급)

로컬 기본 리소스 옵션입니다.

 

속성

임시 (advanced)

로컬 멤버가 그룹을 PersistentMember로 조인해야 하는지 여부를 설정합니다. ephemeral로 설정하면 로컬 멤버가 자동 생성된 ID를 수신하므로 로컬 멤버는 무시됩니다.

false

boolean

ReadConsistency (advanced)

읽기 일관성 수준입니다.

 

ReadConsistency

resourceConfigs (고급)

클러스터 전체 리소스 구성.

 

map

resourceOptions (고급)

로컬 리소스 구성

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

16.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 7 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.atomix-queue.atomix

공유 AtomixClient 인스턴스입니다. 옵션은 io.atomix.AtomixClient 유형입니다.

 

문자열

camel.component.atomix-queue.configuration-uri

AtomixClient 설정 경로

 

문자열

camel.component.atomix-queue.configuration.default-action

기본 동작입니다.

 

AtomixQueue$Action

camel.component.atomix-queue.configuration.result-header

wil이 결과를 전달하는 헤더입니다.

 

문자열

camel.component.atomix-queue.enabled

atomix-queue 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.atomix-queue.nodes

AtomixClient가 연결해야 하는 노드

 

list

camel.component.atomix-queue.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

17장. Atomix 설정 구성 요소

Camel 버전 2.20에서 사용 가능

camel atomix-set 구성 요소를 사용하면 Atomix의 분산 세트 컬렉션을 사용할 수 있습니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml에 추가해야 합니다.

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-atomix</artifactId>
        <version>${camel-version}</version>
    </dependency>
Copy to Clipboard Toggle word wrap

17.1. URI 형식

    atomix-set:setName
Copy to Clipboard Toggle word wrap

Atomix Set 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (일반)

공유 구성 요소 구성

 

AtomixSetConfiguration

Atomix (common)

공유 AtomixClient 인스턴스

 

AtomixClient

노드 (공용)

AtomixClient가 연결해야 하는 노드

 

list

configurationUri (common)

AtomixClient 설정 경로

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Atomix Set 끝점은 URI 구문을 사용하여 구성됩니다.

atomix-set:resourceName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

17.1.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

resourceName

필수 리소스 이름

 

문자열

17.1.2. 쿼리 매개변수(17 매개변수):

Expand
이름설명기본값유형

Atomix (common)

사용할 Atomix 인스턴스

 

Atomix

configurationUri (common)

Atomix 구성 uri입니다.

 

문자열

defaultAction (common)

기본 동작입니다.

ADD

동작

노드 (공용)

클러스터를 구성하는 노드의 주소입니다.

 

문자열

resultHeader (일반)

wil이 결과를 전달하는 헤더입니다.

 

문자열

전송 (일반)

Atomix 전송을 설정합니다.

io.atomix.catalyst.transport.netty.NettyTransport

전송

TTL ( 일반)

리소스 ttl.

 

long

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

defaultResourceConfig (고급)

클러스터의 기본 리소스 구성입니다.

 

속성

defaultResourceOptions (고급)

로컬 기본 리소스 옵션입니다.

 

속성

임시 (advanced)

로컬 멤버가 그룹을 PersistentMember로 조인해야 하는지 여부를 설정합니다. ephemeral로 설정하면 로컬 멤버가 자동 생성된 ID를 수신하므로 로컬 멤버는 무시됩니다.

false

boolean

ReadConsistency (advanced)

읽기 일관성 수준입니다.

 

ReadConsistency

resourceConfigs (고급)

클러스터 전체 리소스 구성.

 

map

resourceOptions (고급)

로컬 리소스 구성

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

17.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 8 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.atomix-set.atomix

공유 AtomixClient 인스턴스입니다. 옵션은 io.atomix.AtomixClient 유형입니다.

 

문자열

camel.component.atomix-set.configuration-uri

AtomixClient 설정 경로

 

문자열

camel.component.atomix-set.configuration.default-action

기본 동작입니다.

 

AtomixSet$Action

camel.component.atomix-set.configuration.result-header

wil이 결과를 전달하는 헤더입니다.

 

문자열

camel.component.atomix-set.configuration.ttl

리소스 ttl.

 

long

camel.component.atomix-set.enabled

atomix-set 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.atomix-set.nodes

AtomixClient가 연결해야 하는 노드

 

list

camel.component.atomix-set.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

18장. Atomix 값 구성 요소

Camel 버전 2.20에서 사용 가능

camel atomix-value 구성 요소를 사용하면 Atomix의 분산 가치 와 함께 작업 할 수 있습니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml에 추가해야 합니다.

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-atomix</artifactId>
        <version>${camel-version}</version>
    </dependency>
Copy to Clipboard Toggle word wrap

18.1. URI 형식

    atomix-value:valueName
Copy to Clipboard Toggle word wrap

Atomix Value 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (일반)

공유 구성 요소 구성

 

AtomixValue 구성

Atomix (common)

공유 AtomixClient 인스턴스

 

AtomixClient

노드 (공용)

AtomixClient가 연결해야 하는 노드

 

list

configurationUri (common)

AtomixClient 설정 경로

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Atomix Value 끝점은 URI 구문을 사용하여 구성됩니다.

atomix-value:resourceName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

18.1.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

resourceName

필수 리소스 이름

 

문자열

18.1.2. 쿼리 매개변수(17 매개변수):

Expand
이름설명기본값유형

Atomix (common)

사용할 Atomix 인스턴스

 

Atomix

configurationUri (common)

Atomix 구성 uri입니다.

 

문자열

defaultAction (common)

기본 동작입니다.

SET

동작

노드 (공용)

클러스터를 구성하는 노드의 주소입니다.

 

문자열

resultHeader (일반)

wil이 결과를 전달하는 헤더입니다.

 

문자열

전송 (일반)

Atomix 전송을 설정합니다.

io.atomix.catalyst.transport.netty.NettyTransport

전송

TTL ( 일반)

리소스 ttl.

 

long

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

defaultResourceConfig (고급)

클러스터의 기본 리소스 구성입니다.

 

속성

defaultResourceOptions (고급)

로컬 기본 리소스 옵션입니다.

 

속성

임시 (advanced)

로컬 멤버가 그룹을 PersistentMember로 조인해야 하는지 여부를 설정합니다. ephemeral로 설정하면 로컬 멤버가 자동 생성된 ID를 수신하므로 로컬 멤버는 무시됩니다.

false

boolean

ReadConsistency (advanced)

읽기 일관성 수준입니다.

 

ReadConsistency

resourceConfigs (고급)

클러스터 전체 리소스 구성.

 

map

resourceOptions (고급)

로컬 리소스 구성

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

18.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 8 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.atomix-value.atomix

공유 AtomixClient 인스턴스입니다. 옵션은 io.atomix.AtomixClient 유형입니다.

 

문자열

camel.component.atomix-value.configuration-uri

AtomixClient 설정 경로

 

문자열

camel.component.atomix-value.configuration.default-action

기본 동작입니다.

 

AtomixValue$Action

camel.component.atomix-value.configuration.result-header

wil이 결과를 전달하는 헤더입니다.

 

문자열

camel.component.atomix-value.configuration.ttl

리소스 ttl.

 

long

camel.component.atomix-value.enabled

atomix-value 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.atomix-value.nodes

AtomixClient가 연결해야 하는 노드

 

list

camel.component.atomix-value.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

19장. Avro 구성 요소

Camel 버전 2.10에서 사용 가능

이 구성 요소는 Apache Avro의 바이너리 데이터 형식을 사용하여 메시지를 직렬화하고 역직렬화할 수 있도록 하는 avro의 dataformat을 제공합니다. 또한 netty 또는 http를 통해 avro 및 consumers 끝점을 사용하도록 생산자 및 소비자 끝점을 제공하여 Apache Avro의 rpc를 지원합니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-avro</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

19.1. Apache Avro 개요

Avro를 사용하면 json과 같은 형식을 사용하여 메시지 유형과 프로토콜을 정의한 다음 지정된 유형 및 메시지에 대해 java 코드를 생성할 수 있습니다. 스키마가 어떻게 보이는지의 예는 다음과 같습니다.

{"namespace": "org.apache.camel.avro.generated",
 "protocol": "KeyValueProtocol",

 "types": [
     {"name": "Key", "type": "record",
      "fields": [
          {"name": "key",   "type": "string"}
      ]
     },
     {"name": "Value", "type": "record",
      "fields": [
          {"name": "value",   "type": "string"}
      ]
     }
 ],

 "messages": {
     "put": {
         "request": [{"name": "key", "type": "Key"}, {"name": "value", "type": "Value"} ],
         "response": "null"
     },
     "get": {
         "request": [{"name": "key", "type": "Key"}],
         "response": "Value"
     }
 }
}
Copy to Clipboard Toggle word wrap

maven, ant 등을 사용하여 스키마에서 클래스를 쉽게 생성할 수 있습니다. 자세한 내용은 Apache Avro 설명서에서 확인할 수 있습니다.

그러나 스키마를 첫 번째 접근 방식은 적용하지 않으며 기존 클래스에 대한 스키마를 만들 수 있습니다.However, it doesn't enforce a schema first approach and you can create schema for your existing classes. 2.12부터 기존 프로토콜 인터페이스를 사용하여 RCP 호출을 수행할 수 있습니다. 프로토콜 자체에 인터페이스를 사용하고 매개 변수 및 결과 유형에 대해 POJO 빈 또는 기본/문자열 클래스를 사용해야 합니다. 위의 스키마에 해당하는 클래스의 예는 다음과 같습니다.Here is an example of the class that corresponds to schema above:

package org.apache.camel.avro.reflection;

public interface KeyValueProtocol {
    void put(String key, Value value);
    Value get(String key);
}

class Value {
    private String value;
    public String getValue() { return value; }
    public void setValue(String value) { this.value = value; }
}
Copy to Clipboard Toggle word wrap

참고: 기존 클래스는 데이터 형식이 아닌 RPC(아래 참조)에만 사용할 수 있습니다.

19.2. Avro 데이터 형식 사용

avro 데이터 형식을 사용하는 것은 라우팅에서 마샬링하거나 마샬링할 클래스를 지정하는 것만큼 쉽습니다.

    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
        <route>
            <from uri="direct:in"/>
            <marshal>
                <avro instanceClass="org.apache.camel.dataformat.avro.Message"/>
            </marshal>
            <to uri="log:out"/>
        </route>
    </camelContext>
Copy to Clipboard Toggle word wrap

대안은 컨텍스트 내에서 dataformat을 지정하고 경로에서 참조할 수 있습니다.

    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
         <dataFormats>
            <avro id="avro" instanceClass="org.apache.camel.dataformat.avro.Message"/>
        </dataFormats>
        <route>
            <from uri="direct:in"/>
            <marshal ref="avro"/>
            <to uri="log:out"/>
        </route>
    </camelContext>
Copy to Clipboard Toggle word wrap

같은 방식으로 avro 데이터 형식을 사용하여 umarshal을 사용할 수 있습니다.

19.3. Camel에서 Avro RPC 사용

위에서 언급한 바와 같이 Avro는 http 및 netty와 같은 여러 전송에 대한 RPC 지원도 제공합니다. Camel은 이 두 가지 전송에 대한 소비자와 생산자를 제공합니다.

avro:[transport]:[host]:[port][?options]
Copy to Clipboard Toggle word wrap

지원되는 전송 값은 현재 http 또는 netty입니다.

2.12 이후에는 URI에 메시지 이름을 바로 지정할 수 있습니다.

avro:[transport]:[host]:[port][/messageName][?options]
Copy to Clipboard Toggle word wrap

소비자의 경우 이를 통해 동일한 소켓에 여러 개의 경로가 연결됩니다. 올바른 경로로 디스패치하는 것은 avro 구성 요소에서 자동으로 수행됩니다. messageName이 지정되지 않은 경로(있는 경우)는 기본값으로 사용됩니다.

avro ipc에 대한 camel 생산자를 사용할 때 "인" 메시지 본문에는 avro 프로토콜에 지정된 작업의 매개 변수가 포함되어야 합니다. "out" 메시지의 본문에 응답이 추가됩니다.

avro ipc에 camel avro 소비자를 사용하는 것과 유사한 방식으로, 요청 매개 변수는 생성된 교환의 "인" 메시지 본문에 배치되고 교환이 "out" 메시지의 본문을 처리하면 응답이 전송됩니다.

참고: 기본 소비자 매개변수는 배열로 래핑됩니다. If you've only one parameter, since 2.12 you can use singleParameter URI option to receive it direcly in the "in" message body without array wrapping.

19.4. Avro RPC URI 옵션

Avro 구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

공유 AvroConfiguration을 사용하여 옵션을 한 번 구성

 

AvroConfiguration

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Avro 엔드포인트는 URI 구문을 사용하여 구성됩니다.

avro:transport:host:port/messageName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

19.4.1. 경로 매개 변수 (4 매개변수):

Expand
이름설명기본값유형

전송

사용할 필수 전송은 http 또는 netty일 수 있습니다.

 

AvroTransport

port

사용할 필수 포트 번호

 

int

host

사용하는 데 필요한 호스트 이름

 

문자열

messageName

보낼 메시지의 이름입니다.

 

문자열

19.4.2. 쿼리 매개 변수(10 매개변수:

Expand
이름설명기본값유형

프로토콜 (일반)

사용할 Avro 프로토콜

 

프로토콜

protocolClassName (common)

FQN 클래스 이름으로 정의된 Avro 프로토콜

 

문자열

protocolLocation (공용)

Avro 프로토콜 위치

 

문자열

reflectionProtocol (common)

제공되는 protocol 오브젝트가 리플렉션 프로토콜입니다. protocolClassName 프로토콜 유형에서 자동으로 감지되므로 protocol 매개 변수에서만 사용해야 합니다.

false

boolean

singleParameter (common)

true인 경우 consumer 매개변수는 배열로 래핑되지 않습니다. protocol이 메시지에 대해 1개의 매개 변수를 더 많이 지정하는 경우 실패합니다.

false

boolean

uriAuthority (일반)

사용 권한(사용자 이름 및 암호)

 

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

19.5. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 15 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.avro.configuration.host

사용할 호스트 이름

 

문자열

camel.component.avro.configuration.message-name

보낼 메시지의 이름입니다.

 

문자열

camel.component.avro.configuration.port

사용할 포트 번호

 

정수

camel.component.avro.configuration.protocol

사용할 Avro 프로토콜

 

프로토콜

camel.component.avro.configuration.protocol-class-name

FQN 클래스 이름으로 정의된 Avro 프로토콜

 

문자열

camel.component.avro.configuration.protocol-location

Avro 프로토콜 위치

 

문자열

camel.component.avro.configuration.reflection-protocol

제공되는 protocol 오브젝트가 리플렉션 프로토콜입니다. protocolClassName 프로토콜 유형에서 자동으로 감지되므로 protocol 매개 변수에서만 사용해야 합니다.

false

부울

camel.component.avro.configuration.single-parameter

true인 경우 consumer 매개변수는 배열로 래핑되지 않습니다. protocol이 메시지에 대해 1개의 매개 변수를 더 많이 지정하는 경우 실패합니다.

false

부울

camel.component.avro.configuration.transport

사용할 전송은 http 또는 netty일 수 있습니다.

 

AvroTransport

camel.component.avro.configuration.uri-authority

사용 권한(사용자 이름 및 암호)

 

문자열

camel.component.avro.enabled

avro 구성 요소 활성화

true

부울

camel.component.avro.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.dataformat.avro.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.avro.enabled

avro dataformat 활성화

true

부울

camel.dataformat.avro.instance-class-name

마샬링 및 unmarshalling에 사용할 클래스 이름

 

문자열

19.6. avro RPC 헤더

Expand
이름설명

CamelAvroMessageName

보낼 메시지의 이름입니다. in consumer는 URI에서 메시지 이름을 재정의합니다(있는 경우)

19.7. 예제

http를 통한 camel avro 생산자 사용 예:

        <route>
            <from uri="direct:start"/>
            <to uri="avro:http:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
            <to uri="log:avro"/>
        </route>
Copy to Clipboard Toggle word wrap

위의 예에서는 CamelAvroMessageName 헤더를 채워야 합니다. 2.12 이후 다음 구문을 사용하여 일정한 메시지를 호출할 수 있습니다.

        <route>
            <from uri="direct:start"/>
            <to uri="avro:http:localhost:{{avroport}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
            <to uri="log:avro"/>
        </route>
Copy to Clipboard Toggle word wrap

netty를 통해 camel avro 소비자를 사용하여 메시지를 사용하는 예:

        <route>
            <from uri="avro:netty:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
            <choice>
                <when>
                    <el>${in.headers.CamelAvroMessageName == 'put'}</el>
                    <process ref="putProcessor"/>
                </when>
                <when>
                    <el>${in.headers.CamelAvroMessageName == 'get'}</el>
                    <process ref="getProcessor"/>
                </when>
            </choice>
        </route>
Copy to Clipboard Toggle word wrap

2.12부터 동일한 작업을 수행하도록 두 개의 다른 경로를 설정할 수 있습니다.

        <route>
            <from uri="avro:netty:localhost:{{avroport}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol">
            <process ref="putProcessor"/>
        </route>
        <route>
            <from uri="avro:netty:localhost:{{avroport}}/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol&singleParameter=true"/>
            <process ref="getProcessor"/>
        </route>
Copy to Clipboard Toggle word wrap

위의 예제에서 get은 하나의 매개 변수만 사용하므로 singleParameter 가 사용되므로 getProcessor 는 본문에서 Value 클래스를 직접 수신하지만 putProcessor 는 String 키와 Value 값이 배열 콘텐츠로 입력된 크기 2의 배열을 수신합니다.

20장. Avro DataFormat

Camel 버전 2.14로 사용 가능

이 구성 요소는 Apache Avro의 바이너리 데이터 형식을 사용하여 메시지를 직렬화하고 역직렬화할 수 있도록 하는 avro의 dataformat을 제공합니다. 또한 netty 또는 http를 통해 avro 및 consumers 끝점을 사용하도록 생산자 및 소비자 끝점을 제공하여 Apache Avro의 rpc를 지원합니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-avro</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

20.1. Apache Avro 개요

Avro를 사용하면 json과 같은 형식을 사용하여 메시지 유형과 프로토콜을 정의한 다음 지정된 유형 및 메시지에 대해 java 코드를 생성할 수 있습니다. 스키마가 어떻게 보이는지의 예는 다음과 같습니다.

{"namespace": "org.apache.camel.avro.generated",
 "protocol": "KeyValueProtocol",

 "types": [
     {"name": "Key", "type": "record",
      "fields": [
          {"name": "key",   "type": "string"}
      ]
     },
     {"name": "Value", "type": "record",
      "fields": [
          {"name": "value",   "type": "string"}
      ]
     }
 ],

 "messages": {
     "put": {
         "request": [{"name": "key", "type": "Key"}, {"name": "value", "type": "Value"} ],
         "response": "null"
     },
     "get": {
         "request": [{"name": "key", "type": "Key"}],
         "response": "Value"
     }
 }
}
Copy to Clipboard Toggle word wrap

maven, ant 등을 사용하여 스키마에서 클래스를 쉽게 생성할 수 있습니다. 자세한 내용은 Apache Avro 설명서에서 확인할 수 있습니다.

그러나 스키마를 첫 번째 접근 방식은 적용하지 않으며 기존 클래스에 대한 스키마를 만들 수 있습니다.However, it doesn't enforce a schema first approach and you can create schema for your existing classes. 2.12부터 기존 프로토콜 인터페이스를 사용하여 RCP 호출을 수행할 수 있습니다. 프로토콜 자체에 인터페이스를 사용하고 매개 변수 및 결과 유형에 대해 POJO 빈 또는 기본/문자열 클래스를 사용해야 합니다. 위의 스키마에 해당하는 클래스의 예는 다음과 같습니다.Here is an example of the class that corresponds to schema above:

package org.apache.camel.avro.reflection;

public interface KeyValueProtocol {
    void put(String key, Value value);
    Value get(String key);
}

class Value {
    private String value;
    public String getValue() { return value; }
    public void setValue(String value) { this.value = value; }
}
Copy to Clipboard Toggle word wrap

참고: 기존 클래스는 데이터 형식이 아닌 RPC(아래 참조)에만 사용할 수 있습니다.

20.2. Avro 데이터 형식 사용

avro 데이터 형식을 사용하는 것은 라우팅에서 마샬링하거나 마샬링할 클래스를 지정하는 것만큼 쉽습니다.

    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
        <route>
            <from uri="direct:in"/>
            <marshal>
                <avro instanceClass="org.apache.camel.dataformat.avro.Message"/>
            </marshal>
            <to uri="log:out"/>
        </route>
    </camelContext>
Copy to Clipboard Toggle word wrap

대안은 컨텍스트 내에서 dataformat을 지정하고 경로에서 참조할 수 있습니다.

    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
         <dataFormats>
            <avro id="avro" instanceClass="org.apache.camel.dataformat.avro.Message"/>
        </dataFormats>
        <route>
            <from uri="direct:in"/>
            <marshal ref="avro"/>
            <to uri="log:out"/>
        </route>
    </camelContext>
Copy to Clipboard Toggle word wrap

같은 방식으로 avro 데이터 형식을 사용하여 umarshal을 사용할 수 있습니다.

20.3. Avro Dataformat 옵션

Avro dataformat은 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름기본값Java Type설명

instanceClassName

 

문자열

마샬링 및 unmarshalling에 사용할 클래스 이름

contentTypeHeader

false

부울

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

20.4. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 15 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.avro.configuration.host

사용할 호스트 이름

 

문자열

camel.component.avro.configuration.message-name

보낼 메시지의 이름입니다.

 

문자열

camel.component.avro.configuration.port

사용할 포트 번호

 

정수

camel.component.avro.configuration.protocol

사용할 Avro 프로토콜

 

프로토콜

camel.component.avro.configuration.protocol-class-name

FQN 클래스 이름으로 정의된 Avro 프로토콜

 

문자열

camel.component.avro.configuration.protocol-location

Avro 프로토콜 위치

 

문자열

camel.component.avro.configuration.reflection-protocol

제공되는 protocol 오브젝트가 리플렉션 프로토콜입니다. protocolClassName 프로토콜 유형에서 자동으로 감지되므로 protocol 매개 변수에서만 사용해야 합니다.

false

부울

camel.component.avro.configuration.single-parameter

true인 경우 consumer 매개변수는 배열로 래핑되지 않습니다. protocol이 메시지에 대해 1개의 매개 변수를 더 많이 지정하는 경우 실패합니다.

false

부울

camel.component.avro.configuration.transport

사용할 전송은 http 또는 netty일 수 있습니다.

 

AvroTransport

camel.component.avro.configuration.uri-authority

사용 권한(사용자 이름 및 암호)

 

문자열

camel.component.avro.enabled

avro 구성 요소 활성화

true

부울

camel.component.avro.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.dataformat.avro.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.avro.enabled

avro dataformat 활성화

true

부울

camel.dataformat.avro.instance-class-name

마샬링 및 unmarshalling에 사용할 클래스 이름

 

문자열

ND

21장. AWS CloudWatch Component

Camel 버전 2.11로 사용 가능

CW 구성 요소를 사용하면 메시지를 Amazon CloudWatch 지표로 보낼 수 있습니다. Amazon API 구현은 AWS SDK 에서 제공합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon CloudWatch를 사용하려면 등록해야 합니다. 자세한 내용은 Amazon CloudWatch 에서 확인할 수 있습니다.

21.1. URI 형식

aws-cw://namespace[?options]
Copy to Clipboard Toggle word wrap

메트릭이 아직 없는 경우 생성됩니다.
다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

21.2. URI 옵션

AWS CloudWatch 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS CW 기본 구성

 

CwConfiguration

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

리전 (producer)

CW 클라이언트가 작업해야 하는 지역

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS CloudWatch 끝점은 URI 구문을 사용하여 구성됩니다.

aws-cw:namespace
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

21.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

namespace

필수 지표 네임스페이스

 

문자열

21.2.2. 쿼리 매개변수(11 매개변수):

Expand
이름설명기본값유형

AmazonCwClient (producer)

AmazonCloudWatch를 클라이언트로 사용

 

AmazonCloudWatch

이름 (producer)

메트릭 이름

 

문자열

proxyHost (producer)

CW 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

CW 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

리전 (producer)

CW 클라이언트가 작업해야 하는 지역

 

문자열

타임 스탬프 (producer)

메트릭 타임스탬프

 

날짜

단위 (producer)

메트릭 단위

 

문자열

(producer)

메트릭 값

 

double

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

21.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 16 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-cw.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-cw.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-cw.configuration.amazon-cw-client

AmazonCloudWatch를 클라이언트로 사용

 

AmazonCloudWatch

camel.component.aws-cw.configuration.name

메트릭 이름

 

문자열

camel.component.aws-cw.configuration.namespace

메트릭 네임스페이스

 

문자열

camel.component.aws-cw.configuration.proxy-host

CW 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-cw.configuration.proxy-port

CW 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

camel.component.aws-cw.configuration.region

CW 클라이언트가 작업해야 하는 지역

 

문자열

camel.component.aws-cw.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-cw.configuration.timestamp

메트릭 타임스탬프

 

날짜

camel.component.aws-cw.configuration.unit

메트릭 단위

 

문자열

camel.component.aws-cw.configuration.value

메트릭 값

 

double

camel.component.aws-cw.enabled

aws-cw 구성 요소 활성화

true

부울

camel.component.aws-cw.region

CW 클라이언트가 작업해야 하는 지역

 

문자열

camel.component.aws-cw.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-cw.secret-key

Amazon AWS Secret Key

 

문자열

필수 CW 구성 요소 옵션

Amazon의 CloudWatch에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonCwClient를 제공해야 합니다.

21.4. 사용법

21.4.1. CW 생산자가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsCwMetricName

문자열

Amazon CW 지표 이름입니다.

CamelAwsCwMetricValue

double

Amazon CW 지표 값입니다.

CamelAwsCwMetricUnit

문자열

Amazon CW 지표 단위입니다.

CamelAwsCwMetricNamespace

문자열

Amazon CW 지표 네임스페이스입니다.

CamelAwsCwMetricTimestamp

날짜

Amazon CW 지표 타임 스탬프입니다.

CamelAwsCwMetricDimensionName

문자열

Camel 2.12: Amazon CW 지표 크기 이름입니다.

CamelAwsCwMetricDimensionValue

문자열

Camel 2.12: Amazon CW 지표 크기 값.

CamelAwsCwMetricDimensions

Map<String, String>

Camel 2.12: 차원 이름 및 차원 값의 맵입니다.

21.4.2. 고급 AmazonCloudWatch 구성

AmazonCloudWatch 인스턴스 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 만들고 URI에서 참조할 수 있습니다.

from("direct:start")
.to("aws-cw://namepsace?amazonCwClient=#client");
Copy to Clipboard Toggle word wrap

#client 는 레지스트리에서 AmazonCloudWatch 를 나타냅니다.

예를 들어 Camel 애플리케이션이 방화벽 뒤에서 실행 중인 경우입니다.

AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

AmazonCloudWatch client = new AmazonCloudWatchClient(awsCredentials, clientConfiguration);

registry.bind("client", client);
Copy to Clipboard Toggle word wrap

21.5. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.10 이상)으로 교체해야 합니다.

21.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

22장. AWS DynamoDB Component

Camel 버전 2.10에서 사용 가능

DynamoDB 구성 요소는 Amazon의 DynamoDB 서비스에서 데이터를 저장하고 검색할 수 있도록 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon DynamoDB를 사용하려면 가입해야 합니다. 자세한 내용은 Amazon DynamoDB 에서 확인할 수 있습니다.

22.1. URI 형식

aws-ddb://domainName[?options]
Copy to Clipboard Toggle word wrap

다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

22.2. URI 옵션

AWS DynamoDB 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS DDB 기본 구성

 

DdbConfiguration

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

리전 (producer)

DDB 클라이언트가 작업해야 하는 리전

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS DynamoDB 끝점은 URI 구문을 사용하여 구성됩니다.

aws-ddb:tableName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

22.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

tableName

필수 필수 현재 작업 중인 테이블의 이름입니다.

 

문자열

22.2.2. 쿼리 매개변수(13 매개변수):

Expand
이름설명기본값유형

AmazonDDBClient (producer)

AmazonDynamoDB를 클라이언트로 사용하기

 

AmazonDynamoDB

ConsistentRead (producer)

데이터를 읽을 때 강력한 일관성을 강제 적용할지 여부를 결정합니다.Determines whether or not strong consistency should be enforced when data is read.

false

boolean

keyAttributeName (producer)

테이블 생성 시 특성 이름

 

문자열

keyAttributeType (producer)

테이블을 만들 때 특성 유형

 

문자열

작업 (producer)

수행할 작업

PutItem

DdbOperations

proxyHost (producer)

DDB 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

DDB 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

readCapacity (producer)

표에서 리소스를 읽기 위해 예약하는 프로비저닝된 처리량

 

long

리전 (producer)

DDB 클라이언트가 작업해야 하는 리전

 

문자열

writeCapacity (producer)

테이블에 리소스를 작성하기 위해 예약된 예약된 처리량

 

long

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

22.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 18 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-ddb.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-ddb.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-ddb.configuration.amazon-d-d-b-client

AmazonDynamoDB를 클라이언트로 사용하기

 

AmazonDynamoDB

camel.component.aws-ddb.configuration.consistent-read

데이터를 읽을 때 강력한 일관성을 강제 적용할지 여부를 결정합니다.Determines whether or not strong consistency should be enforced when data is read.

false

부울

camel.component.aws-ddb.configuration.key-attribute-name

테이블 생성 시 특성 이름

 

문자열

camel.component.aws-ddb.configuration.key-attribute-type

테이블을 만들 때 특성 유형

 

문자열

camel.component.aws-ddb.configuration.operation

수행할 작업

 

DdbOperations

camel.component.aws-ddb.configuration.proxy-host

DDB 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-ddb.configuration.proxy-port

DDB 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

camel.component.aws-ddb.configuration.read-capacity

표에서 리소스를 읽기 위해 예약하는 프로비저닝된 처리량

 

long

camel.component.aws-ddb.configuration.region

DDB 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-ddb.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-ddb.configuration.table-name

현재 작업 중인 테이블의 이름입니다.

 

문자열

camel.component.aws-ddb.configuration.write-capacity

테이블에 리소스를 작성하기 위해 예약된 예약된 처리량

 

long

camel.component.aws-ddb.enabled

aws-ddb 구성 요소 활성화

true

부울

camel.component.aws-ddb.region

DDB 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-ddb.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-ddb.secret-key

Amazon AWS Secret Key

 

문자열

필수 DDB 구성 요소 옵션

Amazon의 DynamoDB에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonDDBClient를 제공해야 합니다.

22.4. 사용법

22.4.1. DDB 생산자가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsDdbBatchItems

Map<String, KeysAndAttributes>

기본 키로 가져올 테이블 이름 및 해당 항목의 맵입니다.

CamelAwsDdbTableName

문자열

이 작업의 테이블 이름입니다.

CamelAwsDdbKey

테이블의 각 항목을 고유하게 식별하는 기본 키입니다. Camel 2.16.0에서 이 헤더의 유형은 Map<String, AttributeValue>이며 키가 아닙니다.

CamelAwsDdbReturnValues

문자열

수정되거나 이후에 속성 이름-값 쌍을 가져오려면 이 매개변수를 사용합니다(NONE, ALL_OLD, UPDATED_OLD, ALL_NEW, UPDATED_NEW).

CamelAwsDdbUpdateCondition

Map<String, ExpectedAttributeValue>

조건부 수정에 대한 특성을 지정합니다.Specifies an attribute for a conditional modification.

CamelAwsDdbAttributeNames

collection<String>

특성 이름을 지정하지 않으면 모든 속성이 반환됩니다.

CamelAwsDdbConsistentRead

부울

true로 설정하면 일관된 읽기가 발행되고, 그렇지 않으면 결국 일관성이 유지됩니다.

CamelAwsDdbIndexName

문자열

설정된 경우 쿼리 작업의 보조 인덱스로 사용됩니다.If set will be used as Secondary Index for Query operation.

CamelAwsDdbItem

Map<String, AttributeValue>

항목의 특성 맵이며 항목을 정의하는 기본 키 값을 포함해야 합니다.

CamelAwsDdbExactCount

부울

true로 설정하면 Amazon DynamoDB에서 일치하는 항목 목록과 해당 속성 목록 대신 쿼리 매개변수와 일치하는 총 항목 수를 반환합니다. Camel 2.16.0에서 이 헤더는 더 이상 존재하지 않습니다.

CamelAwsDdbKeyConditions

map<String, Condition>

Camel 2.16.0에서. 이 헤더는 쿼리에 대한 선택 기준을 지정하고 두 개의 기존 헤더 CamelAwsDdbHashKeyValueCamelAwsDdbScanRangeKeyCondition을 병합합니다.

CamelAwsDdbStartKey

이전 쿼리를 계속할 항목의 기본 키입니다.Primary key of the item from which to continue an earlier query.

CamelAwsDdbHashKeyValue

AttributeValue

복합 기본 키의 해시 구성 요소 값입니다. Camel 2.16.0에서 이 헤더는 더 이상 존재하지 않습니다.

CamelAwsDdbLimit

정수

반환할 최대 항목 수입니다.

CamelAwsDdbScanRangeKeyCondition

상태

쿼리에 사용할 특성 값 및 비교 연산자의 컨테이너입니다.Camel 2.16.0에서 이 헤더는 더 이상 존재하지 않습니다.

CamelAwsDdbScanIndexForward

부울

인덱스의 정방향 또는 후방향 traversal을 지정합니다.

CamelAwsDdbScanFilter

map<String, Condition>

검사 결과를 평가하고 원하는 값만 반환합니다.

CamelAwsDdbUpdateValues

Map<String, AttributeValueUpdate>

특성 이름을 새 값에 매핑하고 업데이트에 대한 작업.

22.4.2. BatchGetItems 작업 중 설정된 메시지 헤더

Expand
header유형설명

CamelAwsDdbBatchResponse

Map<String,BatchResponse>

테이블 이름 및 테이블의 각 항목 속성.

CamelAwsDdbUnprocessedKeys

Map<String,KeysAndAttributes>

현재 응답으로 처리되지 않은 테이블 및 해당 키의 맵을 포함합니다.

22.4.3. DeleteItem 작업 중 메시지 헤더 설정

Expand
header유형설명

CamelAwsDdbAttributes

Map<String, AttributeValue>

작업에서 반환된 속성 목록입니다.

22.4.4. DeleteTable 작업 중 메시지 헤더 설정

Expand
header유형설명

CamelAwsDdbProvisionedThroughput

  

ProvisionedThroughputDescription

 

이 테이블에 대한 ProvisionedThroughput 속성의 값입니다.

CamelAwsDdbCreationDate

날짜

이 테이블의 DateTime입니다.

CamelAwsDdbTableItemCount

long

이 테이블에 대한 항목 수입니다.

CamelAwsDdbKeySchema

KeySchema

이 테이블의 기본 키를 식별하는 KeySchema입니다. Camel 2.16.0에서 이 헤더의 유형은 KeySchema가 아닌 List<KeySchemaElement>입니다.

CamelAwsDdbTableName

문자열

테이블 이름입니다.

CamelAwsDdbTableSize

long

테이블 크기(바이트)입니다.

CamelAwsDdbTableStatus

문자열

표의 상태: CREATING, UPDATING, DELETING, ACTIVE

22.4.5. DescribeTable 작업 중 메시지 헤더 설정

Expand
header유형설명

CamelAwsDdbProvisionedThroughput

{{ProvisionedThroughputDescription}}

이 테이블에 대한 ProvisionedThroughput 속성의 값입니다.

CamelAwsDdbCreationDate

날짜

이 테이블의 DateTime입니다.

CamelAwsDdbTableItemCount

long

이 테이블에 대한 항목 수입니다.

CamelAwsDdbKeySchema

{{KeySchema}}

이 테이블의 기본 키를 식별하는 KeySchema입니다. Camel 2.16.0에서 이 헤더의 유형은 KeySchema가 아닌 List<KeySchemaElement>입니다.

CamelAwsDdbTableName

문자열

테이블 이름입니다.

CamelAwsDdbTableSize

long

테이블 크기(바이트)입니다.

CamelAwsDdbTableStatus

문자열

표의 상태: CREATING, UPDATING, DELETING, ACTIVE

CamelAwsDdbReadCapacity

long

이 테이블의 ReadCapacityUnits 속성입니다.

CamelAwsDdbWriteCapacity

long

이 테이블의 WriteCapacityUnits 속성입니다.

22.4.6. GetItem 작업 중 메시지 헤더 설정

Expand
header유형설명

CamelAwsDdbAttributes

Map<String, AttributeValue>

작업에서 반환된 속성 목록입니다.

22.4.7. PutItem 작업 중 설정된 메시지 헤더

Expand
header유형설명

CamelAwsDdbAttributes

Map<String, AttributeValue>

작업에서 반환된 속성 목록입니다.

22.4.8. 쿼리 작업 중 메시지 헤더 설정

Expand
header유형설명

CamelAwsDdbItems

List<java.util.Map<String,AttributeValue>>

작업에서 반환된 속성 목록입니다.

CamelAwsDdbLastEvaluatedKey

이전 결과 집합을 포함하여 쿼리 작업이 중지된 항목의 기본 키입니다.

CamelAwsDdbConsumedCapacity

double

작업 중 사용되는 테이블의 프로비저닝된 처리량의 용량 단위 수입니다.

CamelAwsDdbCount

정수

응답의 항목 수입니다.

22.4.9. Scan 작업 중 메시지 헤더 설정

Expand
header유형설명

CamelAwsDdbItems

List<java.util.Map<String,AttributeValue>>

작업에서 반환된 속성 목록입니다.

CamelAwsDdbLastEvaluatedKey

이전 결과 집합을 포함하여 쿼리 작업이 중지된 항목의 기본 키입니다.

CamelAwsDdbConsumedCapacity

double

작업 중 사용되는 테이블의 프로비저닝된 처리량의 용량 단위 수입니다.

CamelAwsDdbCount

정수

응답의 항목 수입니다.

CamelAwsDdbScannedCount

정수

필터를 적용하기 전에 전체 검사의 항목 수입니다.

22.4.10. UpdateItem 작업 중 메시지 헤더 설정

Expand
header유형설명

CamelAwsDdbAttributes

Map<String, AttributeValue>

작업에서 반환된 속성 목록입니다.

22.4.11. 고급 AmazonDynamoDB 구성

AmazonDynamoDB 인스턴스 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 생성하고 URI에서 해당 인스턴스를 참조할 수 있습니다.

from("direct:start")
.to("aws-ddb://domainName?amazonDDBClient=#client");
Copy to Clipboard Toggle word wrap

#client 는 레지스트리의 AmazonDynamoDB 를 나타냅니다.

예를 들어 Camel 애플리케이션이 방화벽 뒤에서 실행 중인 경우입니다.

AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

AmazonDynamoDB client = new AmazonDynamoDBClient(awsCredentials, clientConfiguration);

registry.bind("client", client);
Copy to Clipboard Toggle word wrap

22.5. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.10 이상)으로 교체해야 합니다.

22.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

23장. AWS DynamoDB Streams Component

Camel 버전 2.17로 사용 가능

DynamoDB Stream 구성 요소는 Amazon DynamoDB Stream 서비스에서 제공하는 메시지 수신을 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon DynamoDB Streams를 사용하려면 가입해야 합니다. 자세한 내용은 AWS DynamoDB에서 확인할 수 있습니다.

23.1. URI 형식

aws-ddbstream://table-name[?options]
Copy to Clipboard Toggle word wrap

스트림을 사용하기 전에 생성해야 합니다.
다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

23.2. URI 옵션

AWS DynamoDB Streams 구성 요소는 아래 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS DDB 스트림 기본 구성

 

DdbStreamConfiguration

액세스 키 (consumer)

Amazon AWS Access Key

 

문자열

secretKey (consumer)

Amazon AWS Secret Key

 

문자열

리전 (consumer)

Amazon AWS Region

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS DynamoDB Streams 엔드포인트는 URI 구문을 사용하여 구성됩니다.

aws-ddbstream:tableName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

23.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

tableName

필수 dynamodb 테이블의 이름

 

문자열

23.2.2. 쿼리 매개변수(28 매개변수):

Expand
이름설명기본값유형

AmazonDynamoDbStreams 클라이언트 (consumer)

이 끝점에 대한 모든 요청에 사용하는 Amazon DynamoDB 클라이언트

 

AmazonDynamoDBStreams

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

iteratorType (consumer)

DynaboDB 스트림에서 레코드 가져오기를 시작하는 위치를 정의합니다. TRIM_HORIZON을 사용하면 스트림이 실시간으로 감지되기 전에 상당한 지연을 일으킬 수 있습니다. AT,AFTER_SEQUENCE_NUMBER를 사용하는 경우 sequenceNumberProvider를 제공해야 합니다.

최신

ShardIteratorType

maxResultsPerRequest (consumer)

각 폴링에서 가져올 최대 레코드 수

 

int

proxyHost (consumer)

DDBStreams 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (consumer)

DDBStreams 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면To define a proxy port when instantiating the DDBStreams client

 

정수

리전 (consumer)

DDBStreams 클라이언트가 작동해야 하는 리전

 

문자열

sendEmptyMessageWhenIdle (consumer)

폴링 소비자가 파일을 폴링하지 않은 경우 이 옵션을 활성화하여 빈 메시지( 본문 없음)를 대신 보낼 수 있습니다.

false

boolean

sequenceNumberProvider (consumer)

두 ShardIteratorType.AT,AFTER_SEQUENCE_NUMBER iterator 유형 중 하나를 사용할 때 시퀀스 번호 공급자입니다. 레지스트리 참조 또는 리터럴 시퀀스 번호일 수 있습니다.

 

SequenceNumberProvider

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

pollStrategy (consumer)

플러그형 org.apache.camel.PollingConsumerPollingStrategy를 사용하면 Camel에서 Exchange를 생성하고 라우팅하기 전에 폴링 작업 중에 일반적으로 발생한 오류 처리를 제어하는 사용자 정의 구현을 제공할 수 있습니다.

 

PollingConsumerPoll Strategy

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

backoffErrorThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 오류 폴링(일부 오류 발생) 수입니다.

 

int

backoffIdleThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 유휴 폴링 수입니다.

 

int

backoffMultiplier (scheduler)

예약된 폴링 소비자 백오프가 연속된 여러 개의 유휴/errors가 있는 경우 해당 행에 사용할 수 있습니다. multiplier는 다음 실제 시도가 다시 발생하기 전에 건너뛸 폴링 수입니다. 이 옵션을 사용하는 경우 backoffIdleThreshold 및/또는 backoffErrorThreshold도 구성해야 합니다.

 

int

지연 (scheduler)

다음 폴링보다 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

500

long

greedy (scheduler)

greedy가 활성화된 경우 ScheduledPollConsumer는 이전 실행이 1개 이상의 메시지를 폴링하면 즉시 다시 실행됩니다.

false

boolean

initialDelay (scheduler)

첫 번째 폴링이 시작되기 전까지의 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

1000

long

runLoggingLevel (scheduler)

소비자는 폴링할 때 시작/완료 로그 행을 기록합니다. 이 옵션을 사용하면 로깅 수준을 구성할 수 있습니다.

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

소비자에 사용할 사용자 지정/공유 스레드 풀을 구성할 수 있습니다. 기본적으로 각 소비자는 자체 스레드 스레드 풀이 있습니다.

 

ScheduledExecutor Service

스케줄러 (scheduler)

camel-spring 또는 camel-quartz2 구성 요소에서 cron 스케줄러를 사용하려면

none

ScheduledPollConsumer Scheduler

스케줄러 속성 (scheduler)

사용자 지정 스케줄러 또는 Quartz2, Spring 기반 스케줄러를 사용할 때 추가 속성을 구성하려면 다음을 수행합니다.

 

map

StartScheduler (scheduler)

스케줄러가 자동으로 시작되어야 하는지 여부입니다.

true

boolean

timeUnit (scheduler)

initialDelay 및 지연 옵션의 시간 단위입니다.

밀리초

TimeUnit

UseFixedDelay (scheduler)

고정 지연 또는 고정 속도가 사용되는 경우 제어합니다. 자세한 내용은 JDK의 ScheduledExecutorService를 참조하십시오.

true

boolean

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

23.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 15 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-ddbstream.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-ddbstream.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-ddbstream.configuration.amazon-dynamo-db-streams-client

이 끝점에 대한 모든 요청에 사용하는 Amazon DynamoDB 클라이언트

 

AmazonDynamoDBStreams

camel.component.aws-ddbstream.configuration.iterator-type

DynaboDB 스트림에서 레코드 가져오기를 시작하는 위치를 정의합니다. TRIM_HORIZON을 사용하면 스트림이 실시간으로 감지되기 전에 상당한 지연을 일으킬 수 있습니다. AT,AFTER_SEQUENCE_NUMBER를 사용하는 경우 sequenceNumberProvider를 제공해야 합니다.

 

ShardIteratorType

camel.component.aws-ddbstream.configuration.max-results-per-request

각 폴링에서 가져올 최대 레코드 수

 

정수

camel.component.aws-ddbstream.configuration.proxy-host

DDBStreams 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-ddbstream.configuration.proxy-port

DDBStreams 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면To define a proxy port when instantiating the DDBStreams client

 

정수

camel.component.aws-ddbstream.configuration.region

DDBStreams 클라이언트가 작동해야 하는 리전

 

문자열

camel.component.aws-ddbstream.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-ddbstream.configuration.sequence-number-provider

두 ShardIteratorType.AT,AFTER_SEQUENCE_NUMBER iterator 유형 중 하나를 사용할 때 시퀀스 번호 공급자입니다. 레지스트리 참조 또는 리터럴 시퀀스 번호일 수 있습니다.

 

SequenceNumberProvider

camel.component.aws-ddbstream.configuration.table-name

dynamodb 테이블의 이름

 

문자열

camel.component.aws-ddbstream.enabled

aws-ddbstream 구성 요소 활성화

true

부울

camel.component.aws-ddbstream.region

Amazon AWS Region

 

문자열

camel.component.aws-ddbstream.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-ddbstream.secret-key

Amazon AWS Secret Key

 

문자열

필수 DynampDBStream 구성 요소 옵션

레지스트리에 프록시 및 관련 자격 증명이 구성된 AmazonDynamoDbStreamsClient를 제공해야 합니다.

23.4. 시퀀스 번호

리터럴 문자열을 시퀀스 번호로 제공하거나 레지스트리에 빈을 제공할 수 있습니다. 빈을 사용하는 예는 현재 위치를 변경 피드에 저장하고 Camel 시작 시 복원하는 예입니다.

describe-streams 결과에서 가장 큰 시퀀스 수보다 큰 시퀀스 번호를 제공하는 것은 AWS 호출이 HTTP 400을 반환하므로 오류입니다.

23.5. batch Consumer

이 구성 요소는 배치 소비자를 구현합니다.

예를 들어 이 배치에 있는 메시지 수를 알 수 있으며, 예를 들어 집계에서 이 메시지 수를 집계할 수 있습니다.

23.6. 사용법

23.6.1. AmazonDynamoDBStreamsClient configuration

AmazonDynamoDBStreamsClient 인스턴스를 생성하고 레지스트리에 바인딩해야 합니다.

ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

Region region = Region.getRegion(Regions.fromName(region));
region.createClient(AmazonDynamoDBStreamsClient.class, null, clientConfiguration);
// the 'null' here is the AWSCredentialsProvider which defaults to an instance of DefaultAWSCredentialsProviderChain

registry.bind("kinesisClient", client);
Copy to Clipboard Toggle word wrap

23.6.2. AWS 자격 증명 제공

새 ClientConfiguration 인스턴스를 생성할 때 기본값인 DefaultAWSCredentialsProviderChain 을 사용하여 인증 정보를 가져오는 것이 좋지만, createClient(…​)를 호출할 때 다른 AWSCredentialsProvider 를 지정할 수 있습니다.

23.7. Downtime으로 속일 수 있습니다.

23.7.1. AWS DynamoDB Streams 중단 24시간 미만

소비자는 마지막으로 표시된 시퀀스 번호( CAMEL-9515용으로 구현됨)에서 다시 시작되므로, 서비스 중단에 innovation 자체도 포함되지 않은 한 빠른 연속으로 이벤트 홍수를 받아야 합니다.

23.7.2. AWS DynamoDB Streams의 24시간 이상 중단

AWS는 변경 사항의 24 시간 가치만 유지한다는 점을 감안할 때 어떤 완화 조치가 있는지에 관계없이 변경 이벤트가 누락됩니다.

23.8. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.7 이상)으로 교체해야 합니다.

23.9. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS Component
    +

24장. AWS EC2 Component

Camel 버전 2.16에서 사용 가능

EC2 구성 요소는 AWS EC2 인스턴스를 생성, 실행, 시작, 중지 및 종료합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon EC2를 사용하려면 가입해야 합니다. 자세한 내용은 Amazon EC2 에서 확인할 수 있습니다.

24.1. URI 형식

aws-ec2://label[?options]
Copy to Clipboard Toggle word wrap

다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

24.2. URI 옵션

AWS EC2 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS EC2 기본 구성

 

EC2Configuration

리전 (producer)

EC2 클라이언트가 작업해야 하는 리전

 

문자열

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS EC2 엔드 포인트는 URI 구문을 사용하여 구성됩니다.

aws-ec2:label
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

24.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

label

필수 논리 이름

 

문자열

24.2.2. 쿼리 매개변수 (8 매개변수:

Expand
이름설명기본값유형

accesskey (producer)

Amazon AWS Access Key

 

문자열

AmazonEc2Client (producer)

기존 구성된 AmazonEC2Client를 클라이언트로 사용하려면

 

AmazonEC2Client

작업 (producer)

수행해야 하는 작업입니다.The operation to perform. createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstances, rebootInstances, monitorInstances, unmonitorInstances, createTags 또는 deleteTags일 수 있습니다.

 

EC2Operations

proxyHost (producer)

EC2 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

EC2 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

리전 (producer)

EC2 클라이언트가 작업해야 하는 리전

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

24.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 12 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-ec2.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-ec2.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-ec2.configuration.amazon-ec2-client

기존 구성된 AmazonEC2Client를 클라이언트로 사용하려면

 

AmazonEC2Client

camel.component.aws-ec2.configuration.operation

수행할 작업입니다. createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstances, rebootInstances, monitorInstances, unmonitorInstances, createTags 또는 deleteTags일 수 있습니다.

 

EC2Operations

camel.component.aws-ec2.configuration.proxy-host

EC2 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-ec2.configuration.proxy-port

EC2 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

camel.component.aws-ec2.configuration.region

EC2 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-ec2.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-ec2.enabled

aws-ec2 구성 요소 활성화

true

부울

camel.component.aws-ec2.region

EC2 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-ec2.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-ec2.secret-key

Amazon AWS Secret Key

 

문자열

필수 EC2 구성 요소 옵션

Amazon EC2 서비스에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonEc2Client를 제공해야 합니다.

24.4. 사용법

24.4.1. EC2 생산자가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsEC2ImageId

문자열

AWS Marketplace의 이미지 ID

CamelAwsEC2InstanceType

com.amazonaws.services.ec2.model.InstanceType

만들고 실행하려는 인스턴스 유형입니다.

CamelAwsEC2Operation

문자열

수행하려는 작업

CamelAwsEC2InstanceMinCount

int

실행하려는 최소 인스턴스 수입니다.

CamelAwsEC2InstanceMaxCount

int

실행할 최대 인스턴스 수입니다.

CamelAwsEC2InstanceMonitoring

부울

실행 중인 인스턴스를 모니터링하려면 정의

CamelAwsEC2InstanceEbsOptimized

부울

생성 인스턴스가 EBS I/O에 최적화되었는지 여부를 정의합니다.

CamelAwsEC2InstanceSecurityGroups

소프트웨어 컬렉션

인스턴스에 연결할 보안 그룹

CamelAwsEC2InstancesIds

소프트웨어 컬렉션

시작, 중지, 설명 및 종료 작업을 실행할 인스턴스 IDS 컬렉션입니다.

CamelAwsEC2InstancesTags

소프트웨어 컬렉션

EC2 리소스에서 추가하거나 제거할 태그 컬렉션입니다.

종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.16 이상)으로 교체해야 합니다.

24.5. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

25장. AWS IAM 구성 요소

Camel 버전 2.23에서 사용 가능

KMS 구성 요소는 AWS IAM 인스턴스를 생성, 실행, 시작, 중지 및 종료합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있고 Amazon IAM을 사용하려면 가입해야 합니다. 자세한 내용은 Amazon IAM 에서 확인할 수 있습니다.

25.1. URI 형식

aws-kms://label[?options]
Copy to Clipboard Toggle word wrap

다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

25.2. URI 옵션

AWS IAM 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS IAM 기본 구성

 

iamConfiguration

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

리전 (producer)

IAM 클라이언트가 작동해야 하는 리전

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS IAM 끝점은 URI 구문을 사용하여 구성됩니다.

aws-iam:label
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

25.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

label

필수 논리 이름

 

문자열

25.2.2. 쿼리 매개변수 (8 매개변수:

Expand
이름설명기본값유형

accesskey (producer)

Amazon AWS Access Key

 

문자열

iamClient (producer)

기존 구성된 AWS IAM을 클라이언트로 사용하려면

 

AmazonIdentity ManagementClient

작업 (producer)

필수 작업 수행

 

IAMOperations

proxyHost (producer)

KMS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

KMS 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면

 

정수

리전 (producer)

KMS 클라이언트가 작업해야 하는 리전

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

25.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 12 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-iam.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-iam.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-iam.configuration.iam-client

기존 구성된 AWS IAM을 클라이언트로 사용하려면

 

AmazonIdentity ManagementClient

camel.component.aws-iam.configuration.operation

수행할 작업

 

IAMOperations

camel.component.aws-iam.configuration.proxy-host

KMS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-iam.configuration.proxy-port

KMS 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면

 

정수

camel.component.aws-iam.configuration.region

KMS 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-iam.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-iam.enabled

aws-iam 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.aws-iam.region

IAM 클라이언트가 작동해야 하는 리전

 

문자열

camel.component.aws-iam.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-iam.secret-key

Amazon AWS Secret Key

 

문자열

필수 IAM 구성 요소 옵션

Amazon IAM 서비스에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonKmsClient를 제공해야 합니다.

25.4. 사용법

25.4.1. IAM 생산자가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsIAMOperation

문자열

수행하려는 작업

CamelAwsIAMUsername

문자열

관리할 사용자의 사용자 이름

CamelAwsIAMAccessKeyID

문자열

관리하려는 accessKey

CamelAwsIAMAccessKeyStatus

문자열

설정할 AccessKey의 Status(상태)는 활성 상태이고 비활성입니다.

25.4.2. IAM Producer 작업

Camel-AWS IAM 구성 요소는 생산자 측에서 다음과 같은 작업을 제공합니다.

  • listAccessKeys
  • createUser
  • deleteUser
  • listUsers
  • getUser
  • createAccessKey
  • deleteAccessKey
  • updateAccessKey

종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.16 이상)으로 교체해야 합니다.

25.5. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

26장. AWS Kinesis Component

Camel 버전 2.17로 사용 가능

Kinesis 구성 요소는 Amazon Kinesis 서비스에서 메시지를 수신하고 메시지를 보낼 수 있도록 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon Kinesis를 사용하려면 가입해야 합니다. 자세한 내용은 AWS Kinesis에서 확인할 수 있습니다.

26.1. URI 형식

aws-kinesis://stream-name[?options]
Copy to Clipboard Toggle word wrap

스트림을 사용하기 전에 생성해야 합니다.
다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

26.2. URI 옵션

AWS Kinesis 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS S3 기본 구성

 

KinesisConfiguration

accesskey (공용)

Amazon AWS Access Key

 

문자열

secretKey (common)

Amazon AWS Secret Key

 

문자열

region (공용)

Amazon AWS Region

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS Kinesis 끝점은 URI 구문을 사용하여 구성됩니다.

aws-kinesis:streamName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

26.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

streamName

스트림의 필수 이름입니다.

 

문자열

26.2.2. 쿼리 매개변수(30 매개변수):

Expand
이름설명기본값유형

AmazonKinesisClient (일반)

이 끝점에 대한 모든 요청에 사용할 Amazon Kinesis 클라이언트

 

AmazonKinesis

proxyHost (일반)

DDBStreams 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (공용)

DDBStreams 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면To define a proxy port when instantiating the DDBStreams client

 

정수

region (공용)

Kinesis 클라이언트가 작동해야 하는 리전

 

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

iteratorType (consumer)

records 가져오기를 시작하기 위한 Kinesis 스트림에서 위치를 정의합니다.

TRIM_HORIZON

ShardIteratorType

maxResultsPerRequest (consumer)

각 폴링에서 가져올 최대 레코드 수

1

int

sendEmptyMessageWhenIdle (consumer)

폴링 소비자가 파일을 폴링하지 않은 경우 이 옵션을 활성화하여 빈 메시지( 본문 없음)를 대신 보낼 수 있습니다.

false

boolean

sequenceNumber (consumer)

폴링을 시작할 순서 번호입니다. iteratorType이 AFTER_SEQUENCE_NUMBER 또는 AT_SEQUENCE_NUMBER로 설정된 경우 필수 항목입니다.

 

문자열

shardClosed (consumer)

shard가 종료된 경우 수행할 동작을 정의합니다. 가능한 값은 무시, 자동 및 fail. 메시지를 무시합니다. 메시지가 기록되고 소비자가 처음부터 다시 시작됩니다. 자동 로깅의 경우 소비자는 로깅이 없으며 소비자가 처음부터 시작된 경우 ReachedClosedStateException이 발생합니다.

Ignore

KinesisShardClosed StrategyEnum

shardId (consumer)

레코드를 가져올 Kinesis 스트림에서 어떤 shardId를 정의합니다.

 

문자열

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

pollStrategy (consumer)

플러그형 org.apache.camel.PollingConsumerPollingStrategy를 사용하면 Camel에서 Exchange를 생성하고 라우팅하기 전에 폴링 작업 중에 일반적으로 발생한 오류 처리를 제어하는 사용자 정의 구현을 제공할 수 있습니다.

 

PollingConsumerPoll Strategy

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

backoffErrorThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 오류 폴링(일부 오류 발생) 수입니다.

 

int

backoffIdleThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 유휴 폴링 수입니다.

 

int

backoffMultiplier (scheduler)

예약된 폴링 소비자 백오프가 연속된 여러 개의 유휴/errors가 있는 경우 해당 행에 사용할 수 있습니다. multiplier는 다음 실제 시도가 다시 발생하기 전에 건너뛸 폴링 수입니다. 이 옵션을 사용하는 경우 backoffIdleThreshold 및/또는 backoffErrorThreshold도 구성해야 합니다.

 

int

지연 (scheduler)

다음 폴링보다 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

500

long

greedy (scheduler)

greedy가 활성화된 경우 ScheduledPollConsumer는 이전 실행이 1개 이상의 메시지를 폴링하면 즉시 다시 실행됩니다.

false

boolean

initialDelay (scheduler)

첫 번째 폴링이 시작되기 전까지의 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

1000

long

runLoggingLevel (scheduler)

소비자는 폴링할 때 시작/완료 로그 행을 기록합니다. 이 옵션을 사용하면 로깅 수준을 구성할 수 있습니다.

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

소비자에 사용할 사용자 지정/공유 스레드 풀을 구성할 수 있습니다. 기본적으로 각 소비자는 자체 스레드 스레드 풀이 있습니다.

 

ScheduledExecutor Service

스케줄러 (scheduler)

camel-spring 또는 camel-quartz2 구성 요소에서 cron 스케줄러를 사용하려면

none

ScheduledPollConsumer Scheduler

스케줄러 속성 (scheduler)

사용자 지정 스케줄러 또는 Quartz2, Spring 기반 스케줄러를 사용할 때 추가 속성을 구성하려면 다음을 수행합니다.

 

map

StartScheduler (scheduler)

스케줄러가 자동으로 시작되어야 하는지 여부입니다.

true

boolean

timeUnit (scheduler)

initialDelay 및 지연 옵션의 시간 단위입니다.

밀리초

TimeUnit

UseFixedDelay (scheduler)

고정 지연 또는 고정 속도가 사용되는 경우 제어합니다. 자세한 내용은 JDK의 ScheduledExecutorService를 참조하십시오.

true

boolean

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

26.3. Spring Boot Auto-Configuration

구성 요소는 아래에 나열된 17 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-kinesis.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-kinesis.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-kinesis.configuration.amazon-kinesis-client

이 끝점에 대한 모든 요청에 사용할 Amazon Kinesis 클라이언트

 

AmazonKinesis

camel.component.aws-kinesis.configuration.iterator-type

records 가져오기를 시작하기 위한 Kinesis 스트림에서 위치를 정의합니다.

 

ShardIteratorType

camel.component.aws-kinesis.configuration.max-results-per-request

각 폴링에서 가져올 최대 레코드 수

1

정수

camel.component.aws-kinesis.configuration.proxy-host

DDBStreams 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-kinesis.configuration.proxy-port

DDBStreams 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면To define a proxy port when instantiating the DDBStreams client

 

정수

camel.component.aws-kinesis.configuration.region

Kinesis 클라이언트가 작동해야 하는 리전

 

문자열

camel.component.aws-kinesis.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-kinesis.configuration.sequence-number

폴링을 시작할 순서 번호입니다. iteratorType이 AFTER_SEQUENCE_NUMBER 또는 AT_SEQUENCE_NUMBER로 설정된 경우 필수 항목입니다.

 

문자열

camel.component.aws-kinesis.configuration.shard-closed

shard가 종료된 경우 수행할 동작을 정의합니다. 가능한 값은 무시, 자동 및 fail. 메시지를 무시합니다. 메시지가 기록되고 소비자가 처음부터 다시 시작됩니다. 자동 로깅의 경우 소비자는 로깅이 없으며 소비자가 처음부터 시작된 경우 ReachedClosedStateException이 발생합니다.

 

KinesisShardClosed StrategyEnum

camel.component.aws-kinesis.configuration.shard-id

레코드를 가져올 Kinesis 스트림에서 어떤 shardId를 정의합니다.

 

문자열

camel.component.aws-kinesis.configuration.stream-name

스트림의 이름

 

문자열

camel.component.aws-kinesis.enabled

aws-kinesis 구성 요소 활성화

true

부울

camel.component.aws-kinesis.region

Amazon AWS Region

 

문자열

camel.component.aws-kinesis.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-kinesis.secret-key

Amazon AWS Secret Key

 

문자열

필수 Kinesis 구성 요소 옵션

레지스트리의 amazonKinesisClient에 프록시 및 관련 자격 증명이 구성되어 있어야 합니다.

26.4. batch Consumer

이 구성 요소는 배치 소비자를 구현합니다.

예를 들어 이 배치에 있는 메시지 수를 알 수 있으며, 예를 들어 집계에서 이 메시지 수를 집계할 수 있습니다.

26.5. 사용법

26.5.1. Kinesis 소비자가 설정한 메시지 헤더

Expand
header유형설명

CamelAwsKinesisSequenceNumber

문자열

레코드의 시퀀스 번호입니다. 이는 API에서 크기가 정의되지 않기 때문에 String으로 표시됩니다. 숫자 유형으로 사용되는 경우 다음을 사용하십시오.

CamelAwsKinesisApproximateArrivalTimestamp

문자열

AWS가 레코드의 도착 시간으로 할당된 시간입니다.

CamelAwsKinesisPartitionKey

문자열

데이터 레코드가 할당되는 스트림의 shard를 식별합니다.

26.5.2. AmazonKinesis 구성

AmazonKinesisClient 인스턴스를 생성하고 레지스트리에 바인딩해야 합니다.

ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

Region region = Region.getRegion(Regions.fromName(region));
region.createClient(AmazonKinesisClient.class, null, clientConfiguration);
// the 'null' here is the AWSCredentialsProvider which defaults to an instance of DefaultAWSCredentialsProviderChain

registry.bind("kinesisClient", client);
Copy to Clipboard Toggle word wrap

그런 다음 AmazonKinesisClient를 Amazon KinesisClient URI 옵션에서 참조해야 합니다.

from("aws-kinesis://mykinesisstream?amazonKinesisClient=#kinesisClient")
  .to("log:out?showAll=true");
Copy to Clipboard Toggle word wrap

26.5.3. AWS 자격 증명 제공

새 ClientConfiguration 인스턴스를 생성할 때 기본값인 DefaultAWSCredentialsProviderChain 을 사용하여 인증 정보를 가져오는 것이 좋지만, createClient(…​)를 호출할 때 다른 AWSCredentialsProvider 를 지정할 수 있습니다.

Expand
header유형설명

CamelAwsKinesisPartitionKey

문자열

이 레코드를 저장하기 위해 Kinesis로 전달하는 PartitionKey입니다.

CamelAwsKinesisSequenceNumber

문자열

이 레코드의 시퀀스 번호를 나타내는 선택적 매개 변수입니다.

Expand
header유형설명

CamelAwsKinesisSequenceNumber

문자열

Response Syntax에 정의된 레코드의 시퀀스 번호

CamelAwsKinesisShardId

문자열

레코드가 저장된 shard ID

26.6. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.17 이상)으로 교체해야 합니다.

26.7. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

27장. AWS Kinesis Firehose 구성 요소

Camel 버전 2.19에서 사용 가능

Kinesis Firehose 구성 요소는 Amazon Kinesis Firehose 서비스에 메시지를 보낼 수 있도록 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon Kinesis Firehose를 사용하려면 가입해야 합니다. 자세한 내용은 AWS Kinesis Firehose에서 확인할 수 있습니다.

27.1. URI 형식

aws-kinesis-firehose://delivery-stream-name[?options]
Copy to Clipboard Toggle word wrap

스트림을 사용하기 전에 생성해야 합니다.
다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

27.2. URI 옵션

AWS Kinesis Firehose 구성 요소는 아래 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS Kinesis Firehose 기본 구성

 

KinesisFirehose 구성

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

리전 (producer)

Amazon AWS Region

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS Kinesis Firehose 끝점은 URI 구문을 사용하여 구성됩니다.

aws-kinesis-firehose:streamName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

27.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

streamName

스트림의 필수 이름입니다.

 

문자열

27.2.2. 쿼리 매개변수(7 매개변수):

Expand
이름설명기본값유형

AmazonKinesisFirehoseClient (producer)

이 엔드포인트에 대한 모든 요청에 사용할 Amazon Kinesis Firehose 클라이언트

 

AmazonKinesisFirehose

proxyHost (producer)

DDBStreams 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

DDBStreams 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면To define a proxy port when instantiating the DDBStreams client

 

정수

리전 (producer)

Kinesis 클라이언트가 작동해야 하는 리전

 

문자열

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

27.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 12 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-kinesis-firehose.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-kinesis-firehose.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-kinesis-firehose.configuration.amazon-kinesis-firehose-client

이 엔드포인트에 대한 모든 요청에 사용할 Amazon Kinesis Firehose 클라이언트

 

AmazonKinesisFirehose

camel.component.aws-kinesis-firehose.configuration.proxy-host

DDBStreams 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-kinesis-firehose.configuration.proxy-port

DDBStreams 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면To define a proxy port when instantiating the DDBStreams client

 

정수

camel.component.aws-kinesis-firehose.configuration.region

Kinesis 클라이언트가 작동해야 하는 리전

 

문자열

camel.component.aws-kinesis-firehose.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-kinesis-firehose.configuration.stream-name

스트림의 이름

 

문자열

camel.component.aws-kinesis-firehose.enabled

aws-kinesis-firehose 구성 요소 활성화

true

부울

camel.component.aws-kinesis-firehose.region

Amazon AWS Region

 

문자열

camel.component.aws-kinesis-firehose.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-kinesis-firehose.secret-key

Amazon AWS Secret Key

 

문자열

필수 Kinesis Firehose 구성 요소 옵션

레지스트리의 amazonKinesisClient에 프록시 및 관련 자격 증명이 구성되어 있어야 합니다.

27.4. 사용법

27.4.1. Amazon Kinesis Firehose 구성

AmazonKinesisClient 인스턴스를 생성하고 레지스트리에 바인딩해야 합니다.

ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

Region region = Region.getRegion(Regions.fromName(region));
region.createClient(AmazonKinesisClient.class, null, clientConfiguration);
// the 'null' here is the AWSCredentialsProvider which defaults to an instance of DefaultAWSCredentialsProviderChain

registry.bind("kinesisFirehoseClient", client);
Copy to Clipboard Toggle word wrap

AmazonKinesisFirehoseClient는 Amazon KinesisFirehoseClient 옵션에서 참조해야 합니다.

from("aws-kinesis-firehose://mykinesisdeliverystream?amazonKinesisFirehoseClient=#kinesisClient")
  .to("log:out?showAll=true");
Copy to Clipboard Toggle word wrap

27.4.2. AWS 자격 증명 제공

새 ClientConfiguration 인스턴스를 생성할 때 기본값인 DefaultAWSCredentialsProviderChain 을 사용하여 인증 정보를 가져오는 것이 좋지만, createClient(…​)를 호출할 때 다른 AWSCredentialsProvider 를 지정할 수 있습니다.

Expand
header유형설명

CamelAwsKinesisFirehoseRecordId

문자열

Response Syntax에서 정의된 레코드 ID

27.5. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.19 이상)으로 교체해야 합니다.

27.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

28장. AWS KMS 구성 요소

Camel 버전 2.21로 사용 가능

KMS 구성 요소는 AWS KMS 인스턴스를 생성, 실행, 시작, 중지 및 종료합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon KMS를 사용하려면 가입해야 합니다. 자세한 내용은 Amazon KMS 에서 확인할 수 있습니다.

28.1. URI 형식

aws-kms://label[?options]
Copy to Clipboard Toggle word wrap

다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

28.2. URI 옵션

AWS KMS 구성 요소는 아래 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS KMS 기본 구성

 

KMSConfiguration

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

리전 (producer)

KMS 클라이언트가 작업해야 하는 리전

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS KMS 끝점은 URI 구문을 사용하여 구성됩니다.

aws-kms:label
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

28.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

label

필수 논리 이름

 

문자열

28.2.2. 쿼리 매개변수 (8 매개변수:

Expand
이름설명기본값유형

accesskey (producer)

Amazon AWS Access Key

 

문자열

kmsClient (producer)

기존 구성된 AWS KMS를 클라이언트로 사용하려면

 

AWSKMS

작업 (producer)

필수 작업 수행

 

KMSOperations

proxyHost (producer)

KMS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

KMS 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면

 

정수

리전 (producer)

KMS 클라이언트가 작업해야 하는 리전

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

28.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 12 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-kms.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-kms.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-kms.configuration.kms-client

기존 구성된 AWS KMS를 클라이언트로 사용하려면

 

AWSKMS

camel.component.aws-kms.configuration.operation

수행할 작업

 

KMSOperations

camel.component.aws-kms.configuration.proxy-host

KMS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-kms.configuration.proxy-port

KMS 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면

 

정수

camel.component.aws-kms.configuration.region

KMS 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-kms.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-kms.enabled

aws-kms 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.aws-kms.region

KMS 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-kms.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-kms.secret-key

Amazon AWS Secret Key

 

문자열

필수 KMS 구성 요소 옵션

Amazon KMS 서비스에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonKmsClient를 제공해야 합니다.

28.4. 사용법

28.4.1. MQ 생산자가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsKMSLimit

정수

listKeys 작업을 수행하는 동안 반환할 키의 제한 수입니다.

CamelAwsKMSOperation

문자열

수행하려는 작업

CamelAwsKMSDescription

문자열

createKey 작업을 수행하는 동안 사용할 주요 설명

CamelAwsKMSKeyId

문자열

ID 키

28.4.2. KMS Producer 작업

Camel-AWS KMS 구성 요소는 생산자 측에서 다음과 같은 작업을 제공합니다.

  • listKeys
  • createKey
  • disableKey
  • scheduleKeyDeletion
  • describeKey
  • enableKey

종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.16 이상)으로 교체해야 합니다.

28.5. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

29장. AWS Lambda Component

Camel 버전 2.20에서 사용 가능

Lambda 구성 요소는 AWS Lambda 함수를 생성, 가져오기, 나열, 삭제 및 호출할 수 있습니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon Lambda를 사용하려면 가입해야 합니다. 자세한 내용은 Amazon Lambda 에서 확인할 수 있습니다.

Lambda 함수를 생성할 때 최소한 AWSLambdaBasicExecuteRole 정책이 연결된 IAM 역할을 지정해야 합니다.

경고

Lambda는 지역 서비스입니다. S3 버킷과 달리 특정 지역에서 생성된 Lambda 함수는 다른 지역에서 사용할 수 없습니다.

29.1. URI 형식

aws-lambda://functionName[?options]
Copy to Clipboard Toggle word wrap

다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

29.2. URI 옵션

AWS Lambda 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS Lambda 기본 구성

 

LambdaConfiguration

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

리전 (producer)

Amazon AWS Region

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS Lambda 엔드포인트는 URI 구문을 사용하여 구성됩니다.

aws-lambda:function
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

29.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

function

Lambda 함수의 필수 이름입니다.

 

문자열

29.2.2. 쿼리 매개변수 (8 매개변수:

Expand
이름설명기본값유형

작업 (producer)

수행해야 하는 작업입니다.The operation to perform. listFunctions, getFunction, createFunction, deleteFunction 또는 invokeFunction일 수 있습니다.

 

LambdaOperations

리전 (producer)

Amazon AWS Region

 

문자열

awsLambdaClient (advanced)

기존 구성된 AwsLambdaClient를 클라이언트로 사용하려면

 

AWSLambda

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

proxyHost (proxy)

Lambda 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하려면

 

문자열

proxyPort (proxy)

Lambda 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면

 

정수

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

29.3. Spring Boot Auto-Configuration

구성 요소는 아래에 나열된 13 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-lambda.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-lambda.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-lambda.configuration.aws-lambda-client

기존 구성된 AwsLambdaClient를 클라이언트로 사용하려면

 

AWSLambda

camel.component.aws-lambda.configuration.function

Lambda 함수의 이름입니다.

 

문자열

camel.component.aws-lambda.configuration.operation

수행할 작업입니다. listFunctions, getFunction, createFunction, deleteFunction 또는 invokeFunction일 수 있습니다.

 

LambdaOperations

camel.component.aws-lambda.configuration.proxy-host

Lambda 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하려면

 

문자열

camel.component.aws-lambda.configuration.proxy-port

Lambda 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면

 

정수

camel.component.aws-lambda.configuration.region

Amazon AWS Region

 

문자열

camel.component.aws-lambda.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-lambda.enabled

aws-lambda 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.aws-lambda.region

Amazon AWS Region

 

문자열

camel.component.aws-lambda.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-lambda.secret-key

Amazon AWS Secret Key

 

문자열

필수 Lambda 구성 요소 옵션

Amazon Lambda 서비스에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 awsLambdaClient를 제공해야 합니다.

29.4. 사용법

29.4.1. Lambda Pro에서 평가한 메시지 헤더

Expand
작업header유형설명필수 항목

All

CamelAwsLambdaOperation

문자열

수행할 작업입니다. 쿼리 매개변수로 전달된 덮어쓰기 작업

있음

createFunction

CamelAwsLambdaS3Bucket

문자열

배포 패키지가 포함된 .zip 파일이 저장되는 Amazon S3 버킷 이름입니다. 이 버킷은 Lambda 함수를 생성하는 동일한 AWS 리전에 있어야 합니다.

없음

createFunction

CamelAwsLambdaS3Key

문자열

업로드할 Amazon S3 오브젝트(배포 패키지) 키 이름입니다.

없음

createFunction

CamelAwsLambdaS3ObjectVersion

문자열

업로드할 Amazon S3 오브젝트(배포 패키지) 버전입니다.

없음

createFunction

CamelAwsLambdaZipFile

문자열

zip 파일(배포 패키지)의 로컬 경로입니다. zip 파일의 내용도 메시지 본문에 넣을 수 있습니다.

없음

createFunction

CamelAwsLambdaRole

문자열

Lambda가 함수를 실행할 때 다른 AWS(Amazon Web Services) 리소스에 액세스할 때 있다고 가정합니다.

있음

createFunction

CamelAwsLambdaRuntime

문자열

업로드 중인 Lambda 함수의 런타임 환경(nodejs, nodejs4.3, nodejs6.10, java8, python2.7, python3.6, dotnetcore1.0, odejs4.3-edge)

있음

createFunction

CamelAwsLambdaHandler

문자열

코드 내의 함수는 Lambda가 실행을 시작하기 위해 호출합니다. Node.js의 경우 함수의 module-name.export 값입니다. Java의 경우 package.class-name::handler 또는 package.class-name이 될 수 있습니다.

있음

createFunction

CamelAwsLambdaDescription

문자열

사용자가 제공하는 설명입니다.

없음

createFunction

CamelAwsLambdaTargetArn

문자열

Amazon SQS 큐 또는 Amazon SNS 항목의 대상 ARN(Amazon Resource Name)이 포함된 상위 개체입니다.

없음

createFunction

CamelAwsLambdaMemorySize

정수

함수를 위해 구성한 메모리 크기(MB)입니다. 는 64MB의 배수여야 합니다.

없음

createFunction

CamelAwsLambdaKMSKeyArn

문자열

함수의 환경 변수를 암호화하는 데 사용되는 KMS 키의 ARM(Amazon Resource Name)입니다. 제공되지 않는 경우 AWS Lambda는 기본 서비스 키를 사용합니다.

없음

createFunction

CamelAwsLambdaPublish

부울

이 부울 매개 변수는 AWS Lambda를 요청하여 Lambda 함수를 생성하고 버전을 atomic 작업으로 게시하는 데 사용할 수 있습니다.

없음

createFunction

CamelAwsLambdaTimeout

정수

Lambda가 함수를 종료해야 하는 함수 실행 시간입니다. 기본값은 3초입니다.

없음

createFunction

CamelAwsLambdaTracingConfig

문자열

함수의 추적 설정(Active 또는 PassThrough)입니다.

없음

createFunction

CamelAwsLambdaEnvironmentVariables

Map<String, String>

환경 구성 설정을 나타내는 키-값 쌍입니다.

없음

createFunction

CamelAwsLambdaEnvironmentTags

Map<String, String>

새 기능에 할당된 태그(키-값 쌍) 목록입니다.

없음

createFunction

CamelAwsLambdaSecurityGroupIds

list<String>

Lambda 함수가 VPC의 리소스에 액세스하는 경우 VPC에 있는 하나 이상의 보안 그룹 ID 목록입니다.

없음

createFunction

CamelAwsLambdaSubnetIds

list<String>

Lambda 함수가 VPC의 리소스에 액세스하는 경우 VPC에 있는 하나 이상의 서브넷 ID 목록입니다.

없음

29.5. 신뢰할 수 있는 작업 목록

  • listFunctions
  • getFunction,
  • createFunction
  • deleteFunction
  • invokeFunction
  • updateFunction
  • createEventSourceMapping
  • deleteEventSourceMapping
  • listEventSourceMapping

29.6. 예제

구성 요소의 작동 방식을 완전히 이해하기 위해 이 통합 테스트를 살펴볼 수 있습니다.

29.7. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.16 이상)으로 교체해야 합니다.

29.8. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

30장. AWS MQ Component

Camel 버전 2.21로 사용 가능

EC2 구성 요소는 AWS MQ 인스턴스 생성, 실행, 시작, 중지 및 종료를 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon MQ를 사용하려면 가입해야 합니다. 자세한 내용은 Amazon MQ 에서 확인할 수 있습니다.

30.1. URI 형식

aws-mq://label[?options]
Copy to Clipboard Toggle word wrap

다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

30.2. URI 옵션

AWS MQ 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS MQ 기본 구성

 

MQConfiguration

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

리전 (producer)

MQ 클라이언트가 작업해야 하는 리전

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS MQ 엔드포인트는 URI 구문을 사용하여 구성됩니다.

aws-mq:label
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

30.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

label

필수 논리 이름

 

문자열

30.2.2. 쿼리 매개변수 (8 매개변수:

Expand
이름설명기본값유형

accesskey (producer)

Amazon AWS Access Key

 

문자열

AmazonMqClient (producer)

기존 구성된 AmazonMQClient를 클라이언트로 사용하려면

 

AmazonMQ

작업 (producer)

수행해야 하는 작업입니다.The operation to perform. 그것은 listBrokers,createBroker,deleteBroker 일 수 있습니다

 

MQOperations

proxyHost (producer)

MQ 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

MQ 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

리전 (producer)

MQ 클라이언트가 작업해야 하는 리전

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

30.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 12 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-mq.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-mq.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-mq.configuration.amazon-mq-client

기존 구성된 AmazonMQClient를 클라이언트로 사용하려면

 

AmazonMQ

camel.component.aws-mq.configuration.operation

수행할 작업입니다. 그것은 listBrokers,createBroker,deleteBroker 일 수 있습니다

 

MQOperations

camel.component.aws-mq.configuration.proxy-host

MQ 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-mq.configuration.proxy-port

MQ 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

camel.component.aws-mq.configuration.region

MQ 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-mq.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-mq.enabled

aws-mq 구성 요소의 자동 구성을 활성화할지 여부입니다. 이는 기본적으로 활성화되어 있습니다.

 

부울

camel.component.aws-mq.region

MQ 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-mq.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-mq.secret-key

Amazon AWS Secret Key

 

문자열

필수 EC2 구성 요소 옵션

Amazon EC2 서비스에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonEc2Client를 제공해야 합니다.

30.4. 사용법

30.4.1. MQ 생산자가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsMQMaxResults

문자열

listBrokers 작업에서 검색해야 하는 결과 수

CamelAwsMQBrokerName

문자열

브로커 이름

CamelAwsMQOperation

문자열

수행하려는 작업

CamelAwsMQBrokerId

문자열

브로커 ID

CamelAwsMQBrokerDeploymentMode

문자열

createBroker 작업의 브로커 배포 모드

CamelAwsMQBrokerInstanceType

문자열

createBroker 작업의 EC2 머신 인스턴스 유형

CamelAwsMQBrokerEngine

문자열

MQ용 브로커 엔진. 기본값은 ACTIVEMQ입니다.

CamelAwsMQBrokerEngineVersion

문자열

MQ용 브로커 엔진 버전. 현재 ACTIVEMQ의 5.15.6 및 5.15.0 중에서 선택할 수 있습니다.

CamelAwsMQBrokerUsers

List<User>

MQ 사용자 목록

CamelAwsMQBrokerPubliclyAccessible

부울

MQ 인스턴스를 공개적으로 사용할 수 있거나 사용할 수 없는 경우. 기본값은 false입니다.

종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.16 이상)으로 교체해야 합니다.

30.5. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

31장. AWS S3 스토리지 서비스 구성 요소

Camel 버전 2.8에서 사용 가능

S3 구성 요소는 Amazon의 S3 서비스에서 objetc를 저장 및 검색할 수 있도록 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon S3 사용을 위해 등록되어야 합니다. 자세한 내용은 Amazon S3 에서 확인할 수 있습니다.

31.1. URI 형식

aws-s3://bucketNameOrArn[?options]
Copy to Clipboard Toggle word wrap

버킷이 없으면 해당 버킷이 생성됩니다.
다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

예를 들어 버킷 helloBucket 에서 hello.txt 파일을 읽으려면 다음 스니펫을 사용합니다.

from("aws-s3:helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=hello.txt")
  .to("file:/var/downloaded");
Copy to Clipboard Toggle word wrap

31.2. URI 옵션

AWS S3 Storage Service 구성 요소는 아래 나열된 5가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS S3 기본 구성

 

S3Configuration

accesskey (공용)

Amazon AWS Access Key

 

문자열

secretKey (common)

Amazon AWS Secret Key

 

문자열

region (공용)

버킷이 있는 리전입니다. 이 옵션은 com.amazonaws.services.s3.model.CreateBucketRequest에서 사용됩니다.

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS S3 Storage 서비스 끝점은 URI 구문을 사용하여 구성됩니다.

aws-s3:bucketNameOrArn
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

31.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

bucketNameOrArn

필수 버킷 이름 또는 ARN

 

문자열

31.2.2. 쿼리 매개변수(50개 매개변수):

Expand
이름설명기본값유형

AmazonS3Client (일반)

링크에서 com.amazonaws.services.sqs.AmazonS3 참조.https://camel.apache.org/registry.htmlRegistry.

 

AmazonS3

pathStyleAccess (common)

S3 클라이언트가 경로 스타일 액세스를 사용해야 하는지 여부

false

boolean

policy (공용)

이 큐가 com.amazonaws.services.s3.AmazonS3#setBucketPolicy() 메서드에 설정할 정책입니다.

 

문자열

proxyHost (일반)

SQS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (공용)

클라이언트 정의 내에서 사용할 프록시 포트를 지정합니다.

 

정수

region (공용)

S3 클라이언트가 작업해야 하는 지역

 

문자열

IAMCredentials 사용 (일반)

S3 클라이언트가 EC2 인스턴스에서 인증 정보를 로드해야 하는지 또는 정적 인증 정보를 전달할지 여부를 설정합니다.

false

boolean

encryptionMaterials (일반)

Symmetric/Asymmetric client usage의 경우 사용할 암호화 자료

 

EncryptionMaterials

useEncryption (common)

암호화를 사용해야 하는지 여부를 정의합니다.

false

boolean

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

deleteAfterRead (consumer)

검색 후 S3에서 오브젝트를 삭제합니다. 삭제는 Exchange가 커밋된 경우에만 수행됩니다. 롤백이 발생하면 오브젝트가 삭제되지 않습니다. 이 옵션이 false이면 동일한 오브젝트가 폴링에서 다시 검색됩니다. 따라서 경로에 Idempotent Consumer EIP를 사용하여 중복을 필터링해야 합니다. S3Constants#BUCKET_NAME 및 S3Constants#KEY 헤더 또는 S3Constants#KEY 헤더만 사용하여 필터링할 수 있습니다.

true

boolean

파일 이름 (consumer)

지정된 파일 이름을 사용하여 버킷에서 오브젝트를 가져오려면 다음을 수행합니다.

 

문자열

includeBody (consumer)

true인 경우 교환 본문이 파일의 콘텐츠로 스트림으로 설정됩니다. false인 경우 헤더는 S3 오브젝트 메타데이터로 설정되지만 본문은 null입니다. 이 옵션은 autocloseBody 옵션과 관련이 있습니다. includeBody를 true로 설정하고 autocloseBody를 false로 설정하면 S3Object 스트림을 닫을 수 있는 호출자가 됩니다. autocloseBody를 true로 설정하면 S3Object 스트림이 자동으로 종료됩니다.

true

boolean

maxConnections (consumer)

S3 클라이언트 구성에서 maxConnections 매개변수를 설정

60

int

maxMessagesPerPoll (consumer)

각 폴링에서 폴링할 최대 메시지 수를 폴링으로 가져옵니다. 는 기본값 무제한이지만 0 또는 음수를 사용하여 무제한으로 비활성화합니다.

10

int

접두사 (consumer)

관심 있는 오브젝트만 사용하기 위해 com.amazonaws.services.s3.model.ListObjectsRequest에서 사용되는 접두사입니다.

 

문자열

sendEmptyMessageWhenIdle (consumer)

폴링 소비자가 파일을 폴링하지 않은 경우 이 옵션을 활성화하여 빈 메시지( 본문 없음)를 대신 보낼 수 있습니다.

false

boolean

autocloseBody (consumer)

이 옵션이 true이고 includeBody가 true이면 교환 완료 시 S3Object.close() 메서드가 호출됩니다. 이 옵션은 includeBody 옵션과 관련이 있습니다. includeBody를 true로 설정하고 autocloseBody를 false로 설정하면 S3Object 스트림을 닫을 수 있는 호출자가 됩니다. autocloseBody를 true로 설정하면 S3Object 스트림이 자동으로 종료됩니다.

true

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

pollStrategy (consumer)

플러그형 org.apache.camel.PollingConsumerPollingStrategy를 사용하면 Camel에서 Exchange를 생성하고 라우팅하기 전에 폴링 작업 중에 일반적으로 발생한 오류 처리를 제어하는 사용자 정의 구현을 제공할 수 있습니다.

 

PollingConsumerPoll Strategy

deleteAfterwrite (producer)

S3 파일이 업로드된 후 파일 오브젝트 삭제

false

boolean

multiPartUpload (producer)

만약 그것이 사실이라면, camel은 다중 부분 포맷을 사용하여 파일을 업로드 할 것이며, 부분 크기는 partSize의 옵션에 의해 결정됩니다.

false

boolean

작업 (producer)

사용자가 업로드만 하고 싶지 않은 경우 수행할 작업

 

S3Operations

partSize (producer)

다중 부분 업로드에 사용되는 partSize를 설정하면 기본 크기는 25M입니다.

26214400

long

serverSideEncryption (producer)

AWS 관리 키를 사용하여 오브젝트를 암호화할 때 서버 측 암호화 알고리즘을 설정합니다. 예를 들어 AES256을 사용합니다.

 

문자열

StorageClass (producer)

com.amazonaws.services.s3.model.PutObjectRequest 요청에 설정할 스토리지 클래스입니다.

 

문자열

awsKMSKeyId (producer)

KMS가 활성화된 경우 사용할 KMS 키의 id를 정의합니다.

 

문자열

useAwsKMS (producer)

KMS를 사용해야 하는지 여부를 정의합니다.

false

boolean

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

accelerateModeEnabled (고급)

Accelerate Mode enabled가 true 또는 false인 경우 정의

false

boolean

chunkedEncodingDisabled (고급)

Chunked Encoding이 true 또는 false인 경우 정의

false

boolean

dualstackEnabled (고급)

Dualstack enabled가 true인지 false인지 정의합니다.

false

boolean

forceGlobalBucketAccess Enabled (고급)

Force Global Bucket Access enabled가 true인지 아니면 false를 정의합니다.

false

boolean

payloadSigningEnabled (고급)

Payload Signing enabled가 true인지 false인지 정의합니다.

false

boolean

backoffErrorThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 오류 폴링(일부 오류 발생) 수입니다.

 

int

backoffIdleThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 유휴 폴링 수입니다.

 

int

backoffMultiplier (scheduler)

예약된 폴링 소비자 백오프가 연속된 여러 개의 유휴/errors가 있는 경우 해당 행에 사용할 수 있습니다. multiplier는 다음 실제 시도가 다시 발생하기 전에 건너뛸 폴링 수입니다. 이 옵션을 사용하는 경우 backoffIdleThreshold 및/또는 backoffErrorThreshold도 구성해야 합니다.

 

int

지연 (scheduler)

다음 폴링보다 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

500

long

greedy (scheduler)

greedy가 활성화된 경우 ScheduledPollConsumer는 이전 실행이 1개 이상의 메시지를 폴링하면 즉시 다시 실행됩니다.

false

boolean

initialDelay (scheduler)

첫 번째 폴링이 시작되기 전까지의 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

1000

long

runLoggingLevel (scheduler)

소비자는 폴링할 때 시작/완료 로그 행을 기록합니다. 이 옵션을 사용하면 로깅 수준을 구성할 수 있습니다.

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

소비자에 사용할 사용자 지정/공유 스레드 풀을 구성할 수 있습니다. 기본적으로 각 소비자는 자체 스레드 스레드 풀이 있습니다.

 

ScheduledExecutor Service

스케줄러 (scheduler)

camel-spring 또는 camel-quartz2 구성 요소에서 cron 스케줄러를 사용하려면

none

ScheduledPollConsumer Scheduler

스케줄러 속성 (scheduler)

사용자 지정 스케줄러 또는 Quartz2, Spring 기반 스케줄러를 사용할 때 추가 속성을 구성하려면 다음을 수행합니다.

 

map

StartScheduler (scheduler)

스케줄러가 자동으로 시작되어야 하는지 여부입니다.

true

boolean

timeUnit (scheduler)

initialDelay 및 지연 옵션의 시간 단위입니다.

밀리초

TimeUnit

UseFixedDelay (scheduler)

고정 지연 또는 고정 속도가 사용되는 경우 제어합니다. 자세한 내용은 JDK의 ScheduledExecutorService를 참조하십시오.

true

boolean

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

31.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 34 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-s3.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-s3.configuration.accelerate-mode-enabled

Accelerate Mode enabled가 true 또는 false인 경우 정의

false

부울

camel.component.aws-s3.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-s3.configuration.amazon-s3-client

링크에서 com.amazonaws.services.sqs.AmazonS3 참조.https://camel.apache.org/registry.htmlRegistry.

 

AmazonS3

camel.component.aws-s3.configuration.autoclose-body

이 옵션이 true이고 includeBody가 true이면 교환 완료 시 S3Object.close() 메서드가 호출됩니다. 이 옵션은 includeBody 옵션과 관련이 있습니다. includeBody를 true로 설정하고 autocloseBody를 false로 설정하면 S3Object 스트림을 닫을 수 있는 호출자가 됩니다. autocloseBody를 true로 설정하면 S3Object 스트림이 자동으로 종료됩니다.

true

부울

camel.component.aws-s3.configuration.aws-k-m-s-key-id

KMS가 활성화된 경우 사용할 KMS 키의 id를 정의합니다.

 

문자열

camel.component.aws-s3.configuration.bucket-name

버킷의 이름입니다. 버킷이 아직 없는 경우 생성됩니다.

 

문자열

camel.component.aws-s3.configuration.chunked-encoding-disabled

Chunked Encoding이 true 또는 false인 경우 정의

false

부울

camel.component.aws-s3.configuration.delete-after-read

검색 후 S3에서 오브젝트를 삭제합니다. 삭제는 Exchange가 커밋된 경우에만 수행됩니다. 롤백이 발생하면 오브젝트가 삭제되지 않습니다. 이 옵션이 false이면 동일한 오브젝트가 폴링에서 다시 검색됩니다. 따라서 경로에 Idempotent Consumer EIP를 사용하여 중복을 필터링해야 합니다. S3Constants#BUCKET_NAME 및 S3Constants#KEY 헤더 또는 S3Constants#KEY 헤더만 사용하여 필터링할 수 있습니다.

true

부울

camel.component.aws-s3.configuration.delete-after-write

S3 파일이 업로드된 후 파일 오브젝트 삭제

false

부울

camel.component.aws-s3.configuration.dualstack-enabled

Dualstack enabled가 true인지 false인지 정의합니다.

false

부울

camel.component.aws-s3.configuration.encryption-materials

Symmetric/Asymmetric client usage의 경우 사용할 암호화 자료

 

EncryptionMaterials

camel.component.aws-s3.configuration.file-name

지정된 파일 이름을 사용하여 버킷에서 오브젝트를 가져오려면 다음을 수행합니다.

 

문자열

camel.component.aws-s3.configuration.force-global-bucket-access-enabled

Force Global Bucket Access enabled가 true인지 아니면 false를 정의합니다.

false

부울

camel.component.aws-s3.configuration.include-body

true인 경우 교환 본문이 파일의 콘텐츠로 스트림으로 설정됩니다. false인 경우 헤더는 S3 오브젝트 메타데이터로 설정되지만 본문은 null입니다. 이 옵션은 autocloseBody 옵션과 관련이 있습니다. includeBody를 true로 설정하고 autocloseBody를 false로 설정하면 S3Object 스트림을 닫을 수 있는 호출자가 됩니다. autocloseBody를 true로 설정하면 S3Object 스트림이 자동으로 종료됩니다.

true

부울

camel.component.aws-s3.configuration.multi-part-upload

만약 그것이 사실이라면, camel은 다중 부분 포맷을 사용하여 파일을 업로드 할 것이며, 부분 크기는 partSize의 옵션에 의해 결정됩니다.

false

부울

camel.component.aws-s3.configuration.operation

사용자가 업로드만 하고 싶지 않은 경우 수행할 작업

 

S3Operations

camel.component.aws-s3.configuration.part-size

다중 부분 업로드에 사용되는 partSize를 설정하면 기본 크기는 25M입니다.

26214400

long

camel.component.aws-s3.configuration.path-style-access

S3 클라이언트가 경로 스타일 액세스를 사용해야 하는지 여부

false

부울

camel.component.aws-s3.configuration.payload-signing-enabled

Payload Signing enabled가 true인지 false인지 정의합니다.

false

부울

camel.component.aws-s3.configuration.policy

이 큐가 com.amazonaws.services.s3.AmazonS3#setBucketPolicy() 메서드에 설정할 정책입니다.

 

문자열

camel.component.aws-s3.configuration.prefix

관심 있는 오브젝트만 사용하기 위해 com.amazonaws.services.s3.model.ListObjectsRequest에서 사용되는 접두사입니다.

 

문자열

camel.component.aws-s3.configuration.proxy-host

SQS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-s3.configuration.proxy-port

클라이언트 정의 내에서 사용할 프록시 포트를 지정합니다.

 

정수

camel.component.aws-s3.configuration.region

S3 클라이언트가 작업해야 하는 지역

 

문자열

camel.component.aws-s3.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-s3.configuration.server-side-encryption

AWS 관리 키를 사용하여 오브젝트를 암호화할 때 서버 측 암호화 알고리즘을 설정합니다. 예를 들어 AES256을 사용합니다.

 

문자열

camel.component.aws-s3.configuration.storage-class

com.amazonaws.services.s3.model.PutObjectRequest 요청에 설정할 스토리지 클래스입니다.

 

문자열

camel.component.aws-s3.configuration.use-aws-k-m-s

KMS를 사용해야 하는지 여부를 정의합니다.

false

부울

camel.component.aws-s3.configuration.use-encryption

암호화를 사용해야 하는지 여부를 정의합니다.

false

부울

camel.component.aws-s3.enabled

aws-s3 구성 요소 활성화

true

부울

camel.component.aws-s3.region

버킷이 있는 리전입니다. 이 옵션은 com.amazonaws.services.s3.model.CreateBucketRequest에서 사용됩니다.

 

문자열

camel.component.aws-s3.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-s3.secret-key

Amazon AWS Secret Key

 

문자열

필요한 S3 구성 요소 옵션

Amazon의 S3에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonS3Client를 제공해야 합니다.

31.4. batch Consumer

이 구성 요소는 배치 소비자를 구현합니다.

예를 들어 이 배치에 있는 메시지 수를 알 수 있으며, 예를 들어 집계에서 이 메시지 수를 집계할 수 있습니다.

31.5. 사용법

31.5.1. S3 생산자가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsS3BucketName

문자열

이 오브젝트가 저장되거나 현재 작업에 사용할 버킷 이름

CamelAwsS3BucketDestinationName

문자열

Camel 2.18: 현재 작업에 사용할 버킷 대상 이름입니다.

CamelAwsS3ContentLength

long

이 오브젝트의 콘텐츠 길이입니다.

CamelAwsS3ContentType

문자열

이 오브젝트의 콘텐츠 유형입니다.

CamelAwsS3ContentControl

문자열

Camel 2.8.2: 이 개체의 콘텐츠 제어입니다.

CamelAwsS3ContentDisposition

문자열

Camel 2.8.2: 이 오브젝트의 콘텐츠 불일치.

CamelAwsS3ContentEncoding

문자열

Camel 2.8.2: 이 개체의 콘텐츠 인코딩.

CamelAwsS3ContentMD5

문자열

Camel 2.8.2: 이 오브젝트의 md5 체크섬입니다.

CamelAwsS3DestinationKey

문자열

Camel 2.18: 현재 작업에 사용할 대상 키

CamelAwsS3Key

문자열

이 개체를 저장할 키 또는 현재 작업에 사용할 키입니다.The key under which this object will be stored or which will be used for the current operation.

CamelAwsS3LastModified

java.util.Date

Camel 2.8.2: 이 개체의 마지막으로 수정된 타임스탬프입니다.

CamelAwsS3Operation

문자열

Camel 2.18: 수행할 작업. 허용되는 값은 copyObject, deleteObject, listBuckets, deleteBucket, downloadLink, listObjects입니다.

CamelAwsS3StorageClass

문자열

Camel 2.8.4: 이 오브젝트의 스토리지 클래스입니다.

CamelAwsS3CannedAcl

문자열

Camel 2.11.0: 오브젝트에 적용할 수 있는 acl입니다. 허용 값은 com.amazonaws.services.s3.model.CannedAccessControlList 를 참조하십시오.

CamelAwsS3Acl

com.amazonaws.services.s3.model.AccessControlList

Camel 2.11.0: 잘 구성된 Amazon S3 Access Control List 오브젝트입니다. 자세한 내용은 com.amazonaws.services.s3.AccessControlList를 참조하십시오.

CamelAwsS3Headers

map<String,String>

Camel 2.15.0: 사용자 지정 objectMetadata 헤더를 가져오거나 설정합니다.

CamelAwsS3ServerSideEncryption

문자열

Camel 2.16: AWS 관리 키를 사용하여 오브젝트를 암호화할 때 서버 측 암호화 알고리즘을 설정합니다. 예를 들어 AES256을 사용합니다.

CamelAwsS3VersionId

문자열

현재 작업에서 저장되거나 반환될 오브젝트의 버전

31.5.2. S3 생산자가 설정한 메시지 헤더

Expand
header유형설명

CamelAwsS3ETag

문자열

새로 업로드된 오브젝트의 ETag 값입니다.

CamelAwsS3VersionId

문자열

새로 업로드된 오브젝트의 선택적 버전 ID입니다.

CamelAwsS3DownloadLinkExpiration

문자열

URL 다운로드 링크의 만료(밀리코어)입니다. 링크는 CamelAwsS3DownloadLink 응답 헤더에 저장됩니다.

31.5.3. S3 소비자가 설정한 메시지 헤더

Expand
header유형설명

CamelAwsS3Key

문자열

이 오브젝트가 저장되는 키입니다.

CamelAwsS3BucketName

문자열

이 오브젝트가 포함된 버킷의 이름입니다.

CamelAwsS3ETag

문자열

RFC 1864에 따라 관련 오브젝트의 16진수로 인코딩된 128비트 MD5 다이제스트입니다. 이 데이터는 호출자가 수신한 데이터가 Amazon S3에서 보낸 데이터와 동일한지 확인하는 무결성 검사로 사용됩니다.

CamelAwsS3LastModified

날짜

Amazon S3가 마지막으로 연결된 오브젝트에 대한 수정을 기록한 날짜와 시간을 나타내는 Last-Modified 헤더 값입니다.

CamelAwsS3VersionId

문자열

사용 가능한 경우 관련 Amazon S3 오브젝트의 버전 ID입니다. 버전 ID는 오브젝트 버전 관리를 사용하는 Amazon S3 버킷에 오브젝트를 업로드할 때만 오브젝트에 할당됩니다.

CamelAwsS3ContentType

문자열

Content-Type HTTP 헤더: 연결된 오브젝트에 저장된 콘텐츠 유형을 나타냅니다. 이 헤더의 값은 표준 MIME 유형입니다.

CamelAwsS3ContentMD5

문자열

base64로 인코딩된 128-bit MD5 다이제스트는 RFC 1864에 따라 관련 개체 (content - 헤더를 포함하지 않음)입니다. 이 데이터는 Amazon S3에서 수신한 데이터가 호출자와 동일한 데이터인지 확인하는 메시지 무결성 검사로 사용됩니다.

CamelAwsS3ContentLength

long

연결된 개체의 크기를 바이트 단위로 나타내는 Content-Length HTTP 헤더입니다.The Content-Length HTTP header indicating the size of the associated object in bytes.

CamelAwsS3ContentEncoding

문자열

선택 사항 인 Content-Encoding HTTP 헤더는 개체에 적용된 콘텐츠 인코딩과 Content-Type 필드에서 참조하는 미디어 유형을 가져오기 위해 적용해야 하는 디코딩 메커니즘을 지정합니다.

CamelAwsS3ContentDisposition

문자열

선택 사항 인 Content-Disposition HTTP 헤더: 오브젝트를 저장할 권장 파일 이름과 같은 프레젠테이션 정보를 지정합니다.

CamelAwsS3ContentControl

문자열

사용자가 HTTP 요청/응답 체인을 따라 캐싱 동작을 지정할 수 있는 선택적 Cache-Control HTTP 헤더입니다.

CamelAwsS3ServerSideEncryption

문자열

Camel 2.16: AWS 관리 키를 사용하여 오브젝트를 암호화할 때 서버 측 암호화 알고리즘입니다.

31.5.4. S3 Producer 운영

Camel-AWS s3 구성 요소는 생산자 측에서 다음과 같은 작업을 제공합니다.

  • copyObject
  • deleteObject
  • listBuckets
  • deleteBucket
  • downloadLink
  • listObjects

31.5.5. 고급 AmazonS3 구성

Camel 애플리케이션이 방화벽 뒤에서 실행 중이거나 AmazonS3 인스턴스 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 생성할 수 있습니다.

AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");

ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

AmazonS3 client = new AmazonS3Client(awsCredentials, clientConfiguration);

registry.bind("client", client);
Copy to Clipboard Toggle word wrap

Camel aws-s3 구성 요소 구성에서 참조하십시오.

from("aws-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
Copy to Clipboard Toggle word wrap

31.5.6. S3 구성 요소에 KMS 사용

AWS KMS를 사용하여 AWS 인프라를 사용하여 데이터를 암호화/암호화하려면 다음 예제와 같이 2.21.x에 도입된 옵션을 사용할 수 있습니다.

from("file:tmp/test?fileName=test.txt")
     .setHeader(S3Constants.KEY, constant("testFile"))
     .to("aws-s3://mybucket?amazonS3Client=#client&useAwsKMS=true&awsKMSKeyId=3f0637ad-296a-3dfe-a796-e60654fb128c");
Copy to Clipboard Toggle word wrap

이렇게 하면 S3에 KMS 키 3f0637ad-296a-3dfe-a796-e60654fb128c를 사용하여 test.txt 파일을 암호화합니다. 이 파일을 다운로드하도록 요청하면 암호 해독은 다운로드 전에 직접 수행됩니다.

31.5.7. s3 구성 요소와 함께 "IAMCredentials" 사용

AWS IAM 인증 정보를 사용하려면 먼저 Camel 애플리케이션을 시작하는 EC2에 적절한 정책이 효과적으로 실행되도록 하는 적절한 정책이 포함된 IAM 역할이 있는지 확인해야 합니다. 이 기능은 원격 인스턴스에서만 "true"로 설정되어야 합니다. 또한 IAM이 AWS 특정 구성 요소이므로 여전히 정적 인증 정보를 로컬에서 사용해야 하지만 이제 AWS 환경을 보다 쉽게 관리할 수 있어야 합니다. 이를 구현하고 이해한 후에는 쿼리 매개변수 "IAMCredentials"를 AWS 환경에서 "true"로 설정할 수 있습니다. 로컬 및 원격 환경에 따라 이를 효과적으로 설정 및 해제하려면 시스템 환경 변수를 사용하여 이 쿼리 매개 변수를 활성화하는 것을 고려할 수 있습니다. 예를 들어 코드에서 "useIAMCredentials" 쿼리 매개변수를 "true"로 설정할 수 있습니다. "isRemote"라는 시스템 환경 변수가 true로 설정된 경우 (이 작업을 수행하는 다른 많은 방법이 있으며 간단한 예를 수행해야 합니다). 정적 인증 정보가 완전히 필요하지는 않지만 AWS 환경에서 IAM 인증 정보를 사용하면 원격 환경에서 새로 고칠 필요가 없고 주요 보안 강화가 추가됩니다(IAM 인증 정보는 6시간마다 자동으로 새로 고쳐지고 정책이 업데이트될 때 업데이트됨). 이는 AWS에서 인증 정보를 관리하는 데 권장되는 방법이므로 가능한 한 자주 사용해야 합니다.

31.6. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.8 이상)으로 교체해야 합니다.

31.7. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

32장. AWS SimpleDB Component

Camel 버전 2.9에서 사용 가능

sdb 구성 요소는 Amazon의 SDB 서비스에서 데이터를 저장하고 검색할 수 있도록 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon SDB를 사용하도록 등록해야 합니다. 자세한 내용은 Amazon SDB 에서 확인할 수 있습니다.

32.1. URI 형식

aws-sdb://domainName[?options]
Copy to Clipboard Toggle word wrap

다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

32.2. URI 옵션

AWS SimpleDB 구성 요소에는 옵션이 없습니다.

AWS SimpleDB 엔드포인트는 URI 구문을 사용하여 구성됩니다.

aws-sdb:domainName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

32.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

domainName

필수 도메인의 이름은 현재 작업 중인 도메인입니다.

 

문자열

32.2.2. 쿼리 매개 변수(10 매개변수:

Expand
이름설명기본값유형

accesskey (producer)

Amazon AWS Access Key

 

문자열

AmazonSDBClient (producer)

AmazonSimpleDB를 클라이언트로 사용

 

AmazonSimpleDB

ConsistentRead (producer)

데이터를 읽을 때 강력한 일관성을 강제 적용할지 여부를 결정합니다.Determines whether or not strong consistency should be enforced when data is read.

false

boolean

maxNumberOfDomains (producer)

반환할 최대 도메인 이름 수입니다. 범위는 1에서 100까지입니다.

 

정수

작업 (producer)

수행할 작업

PutAttributes

SdbOperations

proxyHost (producer)

SDB 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

SDB 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

리전 (producer)

SDB 클라이언트가 작업해야 하는 리전

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

32.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-sdb.enabled

aws-sdb 구성 요소 활성화

true

부울

camel.component.aws-sdb.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

필수 SDB 구성 요소 옵션

Amazon의 SDB에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonSDBClient를 제공해야 합니다.

32.4. 사용법

32.4.1. SDB 생산자가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsSdbAttributes

collection<Attribute>

수행할 속성 목록입니다.

CamelAwsSdbAttributeNames

collection<String>

검색할 속성의 이름입니다.

CamelAwsSdbConsistentRead

부울

데이터를 읽을 때 강력한 일관성을 강제 적용할지 여부를 결정합니다.Determines whether or not strong consistency should be enforced when data is read.

CamelAwsSdbDeletableItems

Collection<DeletableItem>

일괄 처리에서 삭제 작업을 수행할 항목 목록입니다.

CamelAwsSdbDomainName

문자열

현재 작업 중인 도메인의 이름입니다.

CamelAwsSdbItemName

문자열

이 항목의 고유 키입니다.

CamelAwsSdbMaxNumberOfDomains

정수

반환할 최대 도메인 이름 수입니다. 범위는 1 *에서 100까지입니다.

CamelAwsSdbNextToken

문자열

도메인/배치 이름의 다음 목록을 시작할 위치를 지정하는 문자열입니다.

CamelAwsSdbOperation

문자열

URI 옵션에서 작업을 재정의하려면 다음을 수행합니다.

CamelAwsSdbReplaceableAttributes

Collection<ReplaceableAttribute>

항목에 배치할 속성 목록입니다.

CamelAwsSdbReplaceableItems

Collection<ReplaceableItem>

도메인에 배치할 항목 목록입니다.

CamelAwsSdbSelectExpression

문자열

도메인을 쿼리하는 데 사용되는 식입니다.

CamelAwsSdbUpdateCondition

UpdateCondition

지정된 경우 지정된 특성이 업데이트/삭제할지 여부를 결정하는 업데이트 조건입니다.

32.4.2. DomainMetadata 작업 중 설정된 메시지 헤더

Expand
header유형설명

CamelAwsSdbTimestamp

정수

Epoch(UNIX)초의 메타데이터를 계산하는 데이터 및 시간입니다.

CamelAwsSdbItemCount

정수

도메인의 모든 항목 수입니다.

CamelAwsSdbAttributeNameCount

정수

도메인의 고유한 특성 이름 수입니다.

CamelAwsSdbAttributeValueCount

정수

도메인에 있는 모든 특성 이름/값 쌍의 수입니다.

CamelAwsSdbAttributeNameSize

long

도메인의 모든 고유 특성 이름의 총 크기(바이트)입니다.

CamelAwsSdbAttributeValueSize

long

도메인의 모든 특성 값의 총 크기(바이트)입니다.

CamelAwsSdbItemNameSize

long

도메인의 모든 항목 이름(바이트)의 총 크기입니다.

32.4.3. GetAttributes 작업 중 메시지 헤더 설정

Expand
header유형설명

CamelAwsSdbAttributes

list<Attribute>

작업에서 반환된 속성 목록입니다.

32.4.4. ListDomains 작업 중 설정된 메시지 헤더

Expand
header유형설명

CamelAwsSdbDomainNames

list<String>

식과 일치하는 도메인 이름 목록입니다.

CamelAwsSdbNextToken

문자열

특정 MaxNumberOfDomains보다 많은 도메인이 있음을 나타내는 불투명 토큰입니다.

32.4.5. Select 작업 중 메시지 헤더 설정

Expand
header유형설명

CamelAwsSdbItems

list<Item>

select 식과 일치하는 항목 목록입니다.

CamelAwsSdbNextToken

문자열

opaque 토큰으로 MaxNumberOfItem보다 더 많은 항목이 일치했거나 응답 크기가 1메가바이트를 초과했거나 실행 시간이 5초를 초과했음을 나타냅니다.

32.4.6. 고급 AmazonSimpleDB 구성

AmazonSimpleDB 인스턴스 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 만들고 URI에서 해당 인스턴스를 참조할 수 있습니다.

from("direct:start")
.to("aws-sdb://domainName?amazonSDBClient=#client");
Copy to Clipboard Toggle word wrap

#client 는 레지스트리에서 AmazonSimpleDB 를 나타냅니다.

예를 들어 Camel 애플리케이션이 방화벽 뒤에서 실행 중인 경우입니다.

AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

AmazonSimpleDB client = new AmazonSimpleDBClient(awsCredentials, clientConfiguration);

registry.bind("client", client);
Copy to Clipboard Toggle word wrap

32.5. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.8.4 이상)으로 교체해야 합니다.

32.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

33장. AWS Simple Email Service 구성 요소

Camel 버전 2.9에서 사용 가능

ses 구성 요소는 Amazon SES 서비스로 이메일 전송을 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon SES를 사용하려면 가입해야 합니다. 더 많은 정보는 Amazon SES 에서 확인할 수 있습니다.

33.1. URI 형식

aws-ses://from[?options]
Copy to Clipboard Toggle word wrap

다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

33.2. URI 옵션

AWS Simple Email Service 구성 요소는 아래 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS SES 기본 구성

 

SesConfiguration

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

리전 (producer)

SES 클라이언트가 작업해야 하는 지역

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS Simple Email Service 엔드포인트는 URI 구문을 사용하여 구성됩니다.

aws-ses:from
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

33.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

from

보낸 사람의 이메일 주소가 필요합니다.

 

문자열

33.2.2. 쿼리 매개변수(11 매개변수):

Expand
이름설명기본값유형

AmazonSESClient (producer)

AmazonSimpleEmailService를 클라이언트로 사용

 

AmazonSimpleEmail Service

proxyHost (producer)

SES 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

SES 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

리전 (producer)

SES 클라이언트가 작업해야 하는 지역

 

문자열

replyToAddresses (producer)

메시지에 대한 회신 이메일 주소 목록입니다. 'CamelAwsSesReplyToAddresses' 헤더를 사용하여 재정의합니다.

 

list

returnPath (producer)

반송 알림이 전달될 이메일 주소입니다. 'CamelAwsSes returnPath' 헤더를 사용하여 재정의합니다.

 

문자열

제목 (producer)

메시지 헤더 'CamelAwsSesSubject'가 없는 경우 사용되는 주제입니다.

 

문자열

다음으로 이동 (producer)

대상 이메일 주소 목록. 'CamelAwsSesTo' 헤더를 사용하여 재정의할 수 있습니다.

 

list

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

33.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 16 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-ses.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-ses.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-ses.configuration.amazon-s-e-s-client

AmazonSimpleEmailService를 클라이언트로 사용

 

AmazonSimpleEmail Service

camel.component.aws-ses.configuration.from

보낸 사람의 이메일 주소입니다.

 

문자열

camel.component.aws-ses.configuration.proxy-host

SES 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-ses.configuration.proxy-port

SES 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

camel.component.aws-ses.configuration.region

SES 클라이언트가 작업해야 하는 지역

 

문자열

camel.component.aws-ses.configuration.reply-to-addresses

메시지에 대한 회신 이메일 주소 목록입니다. 'CamelAwsSesReplyToAddresses' 헤더를 사용하여 재정의합니다.

 

list

camel.component.aws-ses.configuration.return-path

반송 알림이 전달될 이메일 주소입니다. 'CamelAwsSes returnPath' 헤더를 사용하여 재정의합니다.

 

문자열

camel.component.aws-ses.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-ses.configuration.subject

메시지 헤더 'CamelAwsSesSubject'가 없는 경우 사용되는 주제입니다.

 

문자열

camel.component.aws-ses.configuration.to

대상 이메일 주소 목록. 'CamelAwsSesTo' 헤더를 사용하여 재정의할 수 있습니다.

 

list

camel.component.aws-ses.enabled

aws-ses 구성 요소 활성화

true

부울

camel.component.aws-ses.region

SES 클라이언트가 작업해야 하는 지역

 

문자열

camel.component.aws-ses.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-ses.secret-key

Amazon AWS Secret Key

 

문자열

필요한 SES 구성 요소 옵션

Amazon SES에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonSESClient를 제공해야 합니다.

33.4. 사용법

33.4.1. SES 생산자가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsSesFrom

문자열

보낸 사람의 이메일 주소입니다.

CamelAwsSesTo

list<String>

이 이메일의 대상입니다.

CamelAwsSesSubject

문자열

메시지의 대상입니다.

CamelAwsSesReplyToAddresses

list<String>

메시지의 회신 이메일 주소입니다.

CamelAwsSesReturnPath

문자열

알림이 전달되어야 하는 이메일 주소입니다.

CamelAwsSesHtmlEmail

부울

Camel 2.12.3 이후 이메일 콘텐츠가 HTML인지 표시하는 플래그입니다.

33.4.2. SES 생산자가 설정한 메시지 헤더

Expand
header유형설명

CamelAwsSesMessageId

문자열

Amazon SES 메시지 ID입니다.

33.4.3. 고급 AmazonSimpleEmailService 구성

AmazonSimpleEmailService 인스턴스 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 만들고 URI에서 해당 인스턴스를 참조할 수 있습니다.

from("direct:start")
.to("aws-ses://example@example.com?amazonSESClient=#client");
Copy to Clipboard Toggle word wrap

#client 는 레지스트리의 AmazonSimpleEmailService 를 나타냅니다.

예를 들어 Camel 애플리케이션이 방화벽 뒤에서 실행 중인 경우입니다.

AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);
AmazonSimpleEmailService client = new AmazonSimpleEmailServiceClient(awsCredentials, clientConfiguration);

registry.bind("client", client);
Copy to Clipboard Toggle word wrap

33.5. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.8.4 이상)으로 교체해야 합니다.

33.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

34장. AWS Simple Notification System 구성 요소

Camel 버전 2.8에서 사용 가능

SNS 구성 요소는 메시지를 Amazon Simple Notification Topic으로 보낼 수 있습니다. Amazon API 구현은 AWS SDK 에서 제공합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon SNS를 사용하기 위해 등록되어야 합니다. 자세한 내용은 Amazon SNS 에서 확인할 수 있습니다.

34.1. URI 형식

aws-sns://topicNameOrArn[?options]
Copy to Clipboard Toggle word wrap

이 문제는 아직 없는 경우 생성됩니다.
다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

34.2. URI 옵션

AWS Simple Notification System 구성 요소는 아래 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS SNS 기본 구성

 

SnsConfiguration

accesskey (producer)

Amazon AWS Access Key

 

문자열

secretKey (producer)

Amazon AWS Secret Key

 

문자열

리전 (producer)

SNS 클라이언트가 작업해야 하는 리전

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS Simple Notification System 끝점은 URI 구문을 사용하여 구성됩니다.

aws-sns:topicNameOrArn
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

34.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

topicNameOrArn

필수 항목 이름 또는 ARN

 

문자열

34.2.2. 쿼리 매개변수(11 매개변수):

Expand
이름설명기본값유형

AmazonSNSClient (producer)

AmazonSNS를 클라이언트로 사용

 

AmazonSNS

headerFilterStrategy (producer)

사용자 지정 HeaderFilterStrategy를 사용하여 헤더를 Camel에 매핑하려면 다음을 수행합니다.

 

HeaderFilterStrategy

MessageStructure (producer)

json과 같이 사용할 메시지 구조

 

문자열

정책 (producer)

이 큐의 정책

 

문자열

proxyHost (producer)

SNS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (producer)

SNS 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면

 

정수

리전 (producer)

SNS 클라이언트가 작업해야 하는 리전

 

문자열

제목 (producer)

메시지 헤더 'CamelAwsSnsSubject'가 없는 경우 사용되는 주제입니다.

 

문자열

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

34.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 16 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-sns.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-sns.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-sns.configuration.amazon-s-n-s-client

AmazonSNS를 클라이언트로 사용

 

AmazonSNS

camel.component.aws-sns.configuration.message-structure

json과 같이 사용할 메시지 구조

 

문자열

camel.component.aws-sns.configuration.policy

이 큐의 정책

 

문자열

camel.component.aws-sns.configuration.proxy-host

SNS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-sns.configuration.proxy-port

SNS 클라이언트를 인스턴스화할 때 프록시 포트를 정의하려면

 

정수

camel.component.aws-sns.configuration.region

SNS 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-sns.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-sns.configuration.subject

메시지 헤더 'CamelAwsSnsSubject'가 없는 경우 사용되는 주제입니다.

 

문자열

camel.component.aws-sns.configuration.topic-arn

생성된 항목에 할당된 ARM(Amazon Resource Name)입니다.

 

문자열

camel.component.aws-sns.configuration.topic-name

주제의 이름

 

문자열

camel.component.aws-sns.enabled

aws-sns 구성 요소 활성화

true

부울

camel.component.aws-sns.region

SNS 클라이언트가 작업해야 하는 리전

 

문자열

camel.component.aws-sns.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-sns.secret-key

Amazon AWS Secret Key

 

문자열

필수 SNS 구성 요소 옵션

Amazon의 SNS에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonSNSClient를 제공해야 합니다.

34.4. 사용법

34.4.1. SNS 프로듀서가 평가한 메시지 헤더

Expand
header유형설명

CamelAwsSnsSubject

문자열

Amazon SNS 메시지 제목. 설정하지 않으면 SnsConfiguration 의 주체가 사용됩니다.

34.4.2. SNS 프로듀서에 의해 설정된 메시지 헤더

Expand
header유형설명

CamelAwsSnsMessageId

문자열

Amazon SNS 메시지 ID입니다.

34.4.3. 고급 AmazonSNS 구성

AmazonSNS 인스턴스 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 생성하고 URI에서 해당 인스턴스를 참조할 수 있습니다.

from("direct:start")
.to("aws-sns://MyTopic?amazonSNSClient=#client");
Copy to Clipboard Toggle word wrap

#client 는 레지스트리의 AmazonSNS 를 나타냅니다.

예를 들어 Camel 애플리케이션이 방화벽 뒤에서 실행 중인 경우입니다.

AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);
AmazonSNS client = new AmazonSNSClient(awsCredentials, clientConfiguration);

registry.bind("client", client);
Copy to Clipboard Toggle word wrap

34.5. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.8 이상)으로 교체해야 합니다.

34.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

35장. AWS Simple Queue Service 구성 요소

Camel 버전 2.6에서 사용 가능

sqs 구성 요소는 Amazon의 SQS 서비스로 메시지를 보내고 받을 수 있도록 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon SQS를 사용하려면 가입해야 합니다. 자세한 내용은 Amazon SQS 에서 확인할 수 있습니다.

35.1. URI 형식

aws-sqs://queueNameOrArn[?options]
Copy to Clipboard Toggle word wrap

큐가 없으면 해당 큐가 생성됩니다.
다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

35.2. URI 옵션

AWS Simple Queue Service 구성 요소는 아래 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS SQS 기본 구성

 

SqsConfiguration

accesskey (공용)

Amazon AWS Access Key

 

문자열

secretKey (common)

Amazon AWS Secret Key

 

문자열

region (공용)

queueOwnerAWSAccountId와 함께 사용할 수 있는 큐 리전을 지정하여 서비스 URL을 빌드합니다.

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS Simple Queue Service 엔드포인트는 URI 구문을 사용하여 구성됩니다.

aws-sqs:queueNameOrArn
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

35.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

queueNameOrArn

필요한 대기열 이름 또는 ARN

 

문자열

35.2.2. 쿼리 매개변수(49 매개변수):

Expand
이름설명기본값유형

AmazonAWSHost (일반)

Amazon AWS 클라우드의 호스트 이름입니다.

amazonaws.com

문자열

AmazonSQSClient (일반)

AmazonSQS를 클라이언트로 사용하기

 

AmazonSQS

headerFilterStrategy (common)

사용자 지정 HeaderFilterStrategy를 사용하여 헤더를 Camel에 매핑하려면 다음을 수행합니다.

 

HeaderFilterStrategy

queueOwnerAWSAccountId (일반)

큐를 다른 계정 소유자와 연결해야 할 때 큐 소유자 aws 계정 ID를 지정합니다.

 

문자열

region (공용)

queueOwnerAWSAccountId와 함께 사용할 수 있는 큐 리전을 지정하여 서비스 URL을 빌드합니다.

 

문자열

IAMCredentials 사용 (일반)

SQS 클라이언트가 EC2 인스턴스에서 인증 정보를 로드해야 하는지 또는 정적 인증 정보를 전달할지 여부를 설정합니다.

false

boolean

attributeNames (consumer)

사용할 때 수신할 속성 이름 목록입니다. 여러 이름은 쉼표로 구분할 수 있습니다.

 

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

concurrentConsumers (consumer)

여러 스레드를 사용하여 sqs 대기열을 폴링하여 처리량을 늘릴 수 있습니다.

1

int

defaultVisibilityTimeout (consumer)

기본 표시 시간 초과(초)

 

정수

deleteAfterRead (consumer)

읽은 후 SQS에서 메시지 삭제

true

boolean

deleteIfFiltered (consumer)

Exchange에서 필터를 통해 얻을 수 없는 경우 DeleteMessage를 SQS 큐에 보낼지 여부입니다. 'false'와 교환이 경로의 Camel 필터 업스트림을 통해 이를 수행하지 않는 경우 DeleteMessage를 보내지 마십시오.

true

boolean

extendMessageVisibility (consumer)

활성화된 경우 예약된 백그라운드 작업은 SQS에서 메시지 가시성을 계속 확장합니다. 이 작업은 메시지를 처리하는 데 시간이 오래 걸리는 경우 필요합니다. true defaultVisibilityTimeout로 설정된 경우 를 설정해야 합니다. 자세한 내용은 Amazon docs에서 참조하십시오.

false

boolean

maxMessagesPerPoll (consumer)

각 폴링에서 폴링할 최대 메시지 수를 폴링으로 가져옵니다. 는 기본값 무제한이지만 0 또는 음수를 사용하여 무제한으로 비활성화합니다.

 

int

messageAttributeNames (consumer)

사용할 때 수신할 메시지 속성 이름 목록입니다. 여러 이름은 쉼표로 구분할 수 있습니다.

 

문자열

sendEmptyMessageWhenIdle (consumer)

폴링 소비자가 파일을 폴링하지 않은 경우 이 옵션을 활성화하여 빈 메시지( 본문 없음)를 대신 보낼 수 있습니다.

false

boolean

visibilityTimeout (consumer)

수신한 메시지가 com.amazonaws.services.sqs.model.SetQueueAttributesRequest에서 설정되도록 받은 메시지가 후속 검색 요청에서 숨겨진 기간(초)입니다. 이는 defaultVisibilityTimeout과 다른 경우에만 의미가 있습니다. 큐 표시 시간 초과 속성을 영구적으로 변경합니다.

 

정수

waitTimeSeconds (consumer)

ReceiveMessage 작업 호출이 응답에 포함될 대기열에 있을 때까지 대기할 시간(초)입니다.

 

정수

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

pollStrategy (consumer)

플러그형 org.apache.camel.PollingConsumerPollingStrategy를 사용하면 Camel에서 Exchange를 생성하고 라우팅하기 전에 폴링 작업 중에 일반적으로 발생한 오류 처리를 제어하는 사용자 정의 구현을 제공할 수 있습니다.

 

PollingConsumerPoll Strategy

delaySeconds (producer)

몇 초 동안 메시지 전송이 지연됩니다.

 

정수

messageDeduplicationId 전략 (producer)

FIFO 대기열의 경우에만 해당합니다. messageDeduplicationId를 메시지에 설정하기 위한 전략입니다. 다음 옵션 중 하나일 수 있습니다. useExchangeId, useContentBasedDeduplication. useContentBasedDeduplication 옵션의 경우 messageDeduplicationId가 메시지에 설정되지 않습니다.

useExchangeId

MessageDeduplicationId Strategy

messageGroupIdStrategy (producer)

FIFO 대기열의 경우에만 해당합니다. 메시지에서 messageGroupId를 설정하는 전략입니다. 다음 옵션 중 하나일 수 있습니다. useConstant, useExchangeId, usePropertyValue. usePropertyValue 옵션의 경우 속성 CamelAwsMessageGroupId가 사용됩니다.

 

MessageGroupIdStrategy

delayQueue (advanced)

대기열 또는 단일 메시지에 delaySeconds 옵션을 적용하려면 정의합니다.

false

boolean

queueUrl (advanced)

queueUrl을 명시적으로 정의하려면 다음을 수행합니다. queueUrl에 영향을 미치는 다른 모든 매개변수는 무시됩니다. 이 매개변수는 테스트 목적으로 SQS의 모크 구현에 연결하는 데 사용됩니다.

 

문자열

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

backoffErrorThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 오류 폴링(일부 오류 발생) 수입니다.

 

int

backoffIdleThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 유휴 폴링 수입니다.

 

int

backoffMultiplier (scheduler)

예약된 폴링 소비자 백오프가 연속된 여러 개의 유휴/errors가 있는 경우 해당 행에 사용할 수 있습니다. multiplier는 다음 실제 시도가 다시 발생하기 전에 건너뛸 폴링 수입니다. 이 옵션을 사용하는 경우 backoffIdleThreshold 및/또는 backoffErrorThreshold도 구성해야 합니다.

 

int

지연 (scheduler)

다음 폴링보다 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

500

long

greedy (scheduler)

greedy가 활성화된 경우 ScheduledPollConsumer는 이전 실행이 1개 이상의 메시지를 폴링하면 즉시 다시 실행됩니다.

false

boolean

initialDelay (scheduler)

첫 번째 폴링이 시작되기 전까지의 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

1000

long

runLoggingLevel (scheduler)

소비자는 폴링할 때 시작/완료 로그 행을 기록합니다. 이 옵션을 사용하면 로깅 수준을 구성할 수 있습니다.

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

소비자에 사용할 사용자 지정/공유 스레드 풀을 구성할 수 있습니다. 기본적으로 각 소비자는 자체 스레드 스레드 풀이 있습니다.

 

ScheduledExecutor Service

스케줄러 (scheduler)

camel-spring 또는 camel-quartz2 구성 요소에서 cron 스케줄러를 사용하려면

none

ScheduledPollConsumer Scheduler

스케줄러 속성 (scheduler)

사용자 지정 스케줄러 또는 Quartz2, Spring 기반 스케줄러를 사용할 때 추가 속성을 구성하려면 다음을 수행합니다.

 

map

StartScheduler (scheduler)

스케줄러가 자동으로 시작되어야 하는지 여부입니다.

true

boolean

timeUnit (scheduler)

initialDelay 및 지연 옵션의 시간 단위입니다.

밀리초

TimeUnit

UseFixedDelay (scheduler)

고정 지연 또는 고정 속도가 사용되는 경우 제어합니다. 자세한 내용은 JDK의 ScheduledExecutorService를 참조하십시오.

true

boolean

proxyHost (proxy)

SQS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

proxyPort (proxy)

SQS 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

maximumMessageSize (queue)

SQS 메시지에는 이 큐에 대해 포함할 수 있는 maximumMessageSize(바이트 단위)입니다.

 

정수

messageRetentionPeriod (queue)

messageRetentionPeriod(초)는 이 대기열에 대해 SQS가 메시지를 유지합니다.

 

정수

정책 (queue)

이 큐의 정책

 

문자열

receiveMessageWaitTime Seconds (queue)

요청에 WaitTimeSeconds를 지정하지 않으면 대기 시간을 결정하는 데 queue 속성 ReceiveMessageWaitTimeSeconds를 사용합니다.

 

정수

redrivePolicy (queue)

DeadLetter 큐에 메시지를 보내는 정책을 지정합니다. 자세한 내용은 Amazon docs에서 참조하십시오.

 

문자열

accesskey (보안)

Amazon AWS Access Key

 

문자열

secretKey (security)

Amazon AWS Secret Key

 

문자열

35.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 31 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-sqs.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-sqs.configuration.access-key

Amazon AWS Access Key

 

문자열

camel.component.aws-sqs.configuration.amazon-a-w-s-host

Amazon AWS 클라우드의 호스트 이름입니다.

amazonaws.com

문자열

camel.component.aws-sqs.configuration.amazon-s-q-s-client

AmazonSQS를 클라이언트로 사용하기

 

AmazonSQS

camel.component.aws-sqs.configuration.attribute-names

사용할 때 수신할 속성 이름 목록입니다. 여러 이름은 쉼표로 구분할 수 있습니다.

 

문자열

camel.component.aws-sqs.configuration.concurrent-consumers

여러 스레드를 사용하여 sqs 대기열을 폴링하여 처리량을 늘릴 수 있습니다.

1

정수

camel.component.aws-sqs.configuration.default-visibility-timeout

기본 표시 시간 초과(초)

 

정수

camel.component.aws-sqs.configuration.delay-queue

대기열 또는 단일 메시지에 delaySeconds 옵션을 적용하려면 정의합니다.

false

부울

camel.component.aws-sqs.configuration.delay-seconds

몇 초 동안 메시지 전송이 지연됩니다.

 

정수

camel.component.aws-sqs.configuration.delete-after-read

읽은 후 SQS에서 메시지 삭제

true

부울

camel.component.aws-sqs.configuration.delete-if-filtered

Exchange에서 필터를 통해 얻을 수 없는 경우 DeleteMessage를 SQS 큐에 보낼지 여부입니다. 'false'와 교환이 경로의 Camel 필터 업스트림을 통해 이를 수행하지 않는 경우 DeleteMessage를 보내지 마십시오.

true

부울

camel.component.aws-sqs.configuration.extend-message-visibility

활성화된 경우 예약된 백그라운드 작업은 SQS에서 메시지 가시성을 계속 확장합니다. 이 작업은 메시지를 처리하는 데 시간이 오래 걸리는 경우 필요합니다. true defaultVisibilityTimeout로 설정된 경우 를 설정해야 합니다. 자세한 내용은 Amazon docs에서 참조하십시오.

false

부울

camel.component.aws-sqs.configuration.maximum-message-size

SQS 메시지에는 이 큐에 대해 포함할 수 있는 maximumMessageSize(바이트 단위)입니다.

 

정수

camel.component.aws-sqs.configuration.message-attribute-names

사용할 때 수신할 메시지 속성 이름 목록입니다. 여러 이름은 쉼표로 구분할 수 있습니다.

 

문자열

camel.component.aws-sqs.configuration.message-retention-period

messageRetentionPeriod(초)는 이 대기열에 대해 SQS가 메시지를 유지합니다.

 

정수

camel.component.aws-sqs.configuration.policy

이 큐의 정책

 

문자열

camel.component.aws-sqs.configuration.proxy-host

SQS 클라이언트를 인스턴스화할 때 프록시 호스트를 정의하기 위해

 

문자열

camel.component.aws-sqs.configuration.proxy-port

SQS 클라이언트를 인스턴스화할 때 프록시 포트 정의

 

정수

camel.component.aws-sqs.configuration.queue-name

큐 이름입니다. 큐가 없으면 해당 큐가 생성됩니다.

 

문자열

camel.component.aws-sqs.configuration.queue-owner-a-w-s-account-id

큐를 다른 계정 소유자와 연결해야 할 때 큐 소유자 aws 계정 ID를 지정합니다.

 

문자열

camel.component.aws-sqs.configuration.queue-url

queueUrl을 명시적으로 정의하려면 다음을 수행합니다. queueUrl에 영향을 미치는 다른 모든 매개변수는 무시됩니다. 이 매개변수는 테스트 목적으로 SQS의 모크 구현에 연결하는 데 사용됩니다.

 

문자열

camel.component.aws-sqs.configuration.receive-message-wait-time-seconds

요청에 WaitTimeSeconds를 지정하지 않으면 대기 시간을 결정하는 데 queue 속성 ReceiveMessageWaitTimeSeconds를 사용합니다.

 

정수

camel.component.aws-sqs.configuration.redrive-policy

DeadLetter 큐에 메시지를 보내는 정책을 지정합니다. 자세한 내용은 Amazon docs에서 참조하십시오.

 

문자열

camel.component.aws-sqs.configuration.region

queueOwnerAWSAccountId와 함께 사용할 수 있는 큐 리전을 지정하여 서비스 URL을 빌드합니다.

 

문자열

camel.component.aws-sqs.configuration.secret-key

Amazon AWS Secret Key

 

문자열

camel.component.aws-sqs.configuration.visibility-timeout

수신한 메시지가 com.amazonaws.services.sqs.model.SetQueueAttributesRequest에서 설정되도록 받은 메시지가 후속 검색 요청에서 숨겨진 기간(초)입니다. 이는 defaultVisibilityTimeout과 다른 경우에만 의미가 있습니다. 큐 표시 시간 초과 속성을 영구적으로 변경합니다.

 

정수

camel.component.aws-sqs.configuration.wait-time-seconds

ReceiveMessage 작업 호출이 응답에 포함될 대기열에 있을 때까지 대기할 시간(초)입니다.

 

정수

camel.component.aws-sqs.enabled

aws-sqs 구성 요소 활성화

true

부울

camel.component.aws-sqs.region

queueOwnerAWSAccountId와 함께 사용할 수 있는 큐 리전을 지정하여 서비스 URL을 빌드합니다.

 

문자열

camel.component.aws-sqs.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-sqs.secret-key

Amazon AWS Secret Key

 

문자열

필수 SQS 구성 요소 옵션

Amazon의 SQS에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonSQSClient를 제공해야 합니다.

35.4. batch Consumer

이 구성 요소는 배치 소비자를 구현합니다.

예를 들어 이 배치에 있는 메시지 수를 알 수 있으며, 예를 들어 집계에서 이 메시지 수를 집계할 수 있습니다.

35.5. 사용법

35.5.1. SQS 생산자가 설정한 메시지 헤더

Expand
header유형설명

CamelAwsSqsMD5OfBody

문자열

Amazon SQS 메시지의 MD5 체크섬입니다.

CamelAwsSqsMessageId

문자열

Amazon SQS 메시지 ID.

CamelAwsSqsDelaySeconds

정수

Camel 2.11 부터 Amazon SQS 메시지가 다른 사람이 볼 수 있는 지연 시간.

35.5.2. SQS 소비자가 설정한 메시지 헤더

Expand
header유형설명

CamelAwsSqsMD5OfBody

문자열

Amazon SQS 메시지의 MD5 체크섬입니다.

CamelAwsSqsMessageId

문자열

Amazon SQS 메시지 ID.

CamelAwsSqsReceiptHandle

문자열

Amazon SQS 메시지 수신 핸들.

CamelAwsSqsMessageAttributes

Map<String, String>

Amazon SQS 메시지 속성.

35.5.3. 고급 AmazonSQS 구성

Camel 애플리케이션이 방화벽 뒤에서 실행 중이거나 AmazonSQS 인스턴스 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 생성할 수 있습니다.

AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");

ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

AmazonSQS client = new AmazonSQSClient(awsCredentials, clientConfiguration);

registry.bind("client", client);
Copy to Clipboard Toggle word wrap

Camel aws-sqs 구성 요소 구성에서 참조하십시오.

from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
Copy to Clipboard Toggle word wrap

35.5.4. SQS 큐 생성 또는 업데이트

SQS 구성 요소에서 끝점이 시작되면 큐의 존재 여부에 대한 정보를 가져오기 위해 검사가 실행됩니다. SQSConfiguration 옵션을 사용하여 QueueAttributeName 매핑을 통해 생성을 사용자 지정할 수 있습니다.

from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
Copy to Clipboard Toggle word wrap

이 예에서는 AWS에서 MyQueue 큐가 아직 생성되지 않은 경우 SQS 구성에서 기본 매개변수로 생성됩니다. AWS에 이미 작동 중인 경우 SQS 구성 옵션을 사용하여 존재하는 AWS 구성을 재정의합니다.

35.5.5. Single 메시지의 DelayQueue VS Delay

2.23.0에서 구성 요소에는 delayQueue라는 새로운 옵션이 있습니다. 옵션이 true로 설정되면 SQS Queue는 지연으로 DelaySeconds 옵션이 있는 DelayQueue가 됩니다. DelayQueue에 대한 자세한 내용은 AWS SQS 설명서를 참조하십시오. 고려해야 할 중요한 정보 중 하나는 다음과 같습니다.

  • 표준 대기열의 경우 대기열당 지연 설정이 소급적으로 변경되지 않습니다. 설정이 대기열에 이미 있는 메시지의 지연에는 영향을 미치지 않습니다.
  • FIFO 대기열의 경우 대기열당 지연 설정이 소급적으로 변경되며, 이 설정은 큐에 이미 있는 메시지의 지연에 영향을 미칩니다.

공식 문서에 명시된 대로 단일 메시지에 지연을 지정하려면 이 옵션을 true로 설정할 수 있지만 모든 메시지 enqueued에 고정 지연 시간을 추가해야 하는 경우 delayQueue 옵션을 무시할 수 있습니다.

35.5.6. SQS 구성 요소에서 AWS IAM 인증 정보 사용

AWS IAM 인증 정보를 사용하려면 먼저 Camel 애플리케이션을 시작하는 EC2 인스턴스에 IAM 역할이 연결되어 있고 적절한 정책이 연결되어 있는지 확인해야 합니다.

이 기능은 원격 인스턴스에서만 true 로 설정해야 합니다. 또한 IAM이 AWS 특정 구성 요소이므로 정적 인증 정보도 로컬로 사용해야 합니다.

이 기능을 구현하려면 IAMCredentials를 true 로 설정합니다.

참고

로컬 및 원격 환경에 따라 이 기능을 설정 및 해제하려면 시스템 환경 변수를 사용하여 이 쿼리 매개 변수 사용을 고려할 수 있습니다. 예를 들어 라는 시스템 환경 변수가 true 로 설정된 경우 코드 IAMCredentials 쿼리 매개 변수를 true 로 설정할 수 있습니다.

이 기능은 정적 인증 정보가 완전히 필요하지 않지만 AWS 환경에서 IAM 인증 정보를 사용하면 원격 환경에서 새로 고칠 필요가 없으며 6시간마다 IAM 인증 정보가 자동으로 새로 고쳐지고 EC2 보안 정책이 업데이트될 때 업데이트되므로 더 안전합니다.

이는 AWS에서 인증 정보를 관리하는 데 권장되는 방법이므로 가능한 한 자주 사용해야 합니다.

35.6. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.6 이상)으로 교체해야 합니다.

35.7. JMS 스타일 선택기

SQS는 선택기를 허용하지 않지만 Camel Filter EIP를 사용하고 적절한 visibilityTimeout 을 설정하여 이를 효과적으로 달성할 수 있습니다. SQS가 메시지를 디스패치하면 DeleteMessage가 수신되지 않는 한 다른 소비자에게 메시지를 디스패치하려고 시도하기 전에 가시성 타임아웃까지 기다립니다. 기본적으로 Camel은 경로가 실패로 종료되지 않는 한 항상 DeleteMessage를 경로 끝에 보냅니다. 적절한 필터링을 수행하고 경로가 성공적으로 완료되는 경우에도 DeleteMessage를 보내지 않으려면 Filter를 사용합니다.

from("aws-sqs://MyQueue?amazonSQSClient=#client&defaultVisibilityTimeout=5000&deleteIfFiltered=false")
.filter("${header.login} == true")
.to("mock:result");
Copy to Clipboard Toggle word wrap

위의 코드에서 교환에 적절한 헤더가 없는 경우 필터를 통해 이를 수행하지 않으며 SQS 큐에서도 삭제되지 않습니다. 5000마초가 지나면 다른 사용자에게 메시지가 표시됩니다.

35.8. 단일 메시지 삭제

deleteMessage 작업을 사용하여 단일 메시지를 삭제합니다. 삭제하려는 메시지에 대한 수신 핸들 헤더를 설정해야 합니다.

from("direct:start")
  .setHeader(SqsConstants.SQS_OPERATION, constant("deleteMessage"))
  .setHeader(SqsConstants.RECEIPT_HANDLE, constant("123456"))
  .to("aws-sqs://camel-1?accessKey=RAW(xxx)&secretKey=RAW(xxx)&region=EU_WEST_1");
Copy to Clipboard Toggle word wrap

결과적으로 DeleteMessageResult 인스턴스가 포함된 교환에서 메시지가 삭제되었는지 확인하는 데 사용할 수 있습니다.

35.9. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • AWS 구성 요소

36장. AWS Simple Workflow 구성 요소

Camel 버전 2.13에서 사용 가능

Simple Workflow 구성 요소는 Amazon의 Simple Workflow 서비스에서 워크플로 관리를 지원합니다.

사전 요구 사항

유효한 Amazon Web Services 개발자 계정이 있어야 하며 Amazon Simple Workflow를 사용하려면 가입해야 합니다. 자세한 내용은 Amazon Simple Workflow 에서 확인할 수 있습니다.

36.1. URI 형식

aws-swf://<workflow|activity>[?options]
Copy to Clipboard Toggle word wrap

다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

36.2. URI 옵션

AWS Simple Workflow 구성 요소는 아래 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (고급)

AWS SWF 기본 구성

 

SWFConfiguration

accesskey (공용)

Amazon AWS Access Key입니다.

 

문자열

secretKey (common)

Amazon AWS Secret Key.

 

문자열

region (공용)

Amazon AWS 리전.

 

문자열

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

AWS Simple Workflow 엔드포인트는 URI 구문을 사용하여 구성됩니다.

aws-swf:type
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

36.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

type

필수 활동 또는 워크플로우

 

문자열

36.2.2. 쿼리 매개변수(30 매개변수):

Expand
이름설명기본값유형

AmazonSWClient (일반)

지정된 AmazonSimpleWorkflowClient를 클라이언트로 사용하기 위해

 

AmazonSimpleWorkflow Client

dataConverter (일반)

데이터 직렬화/데이저에 사용할 com.amazonaws.services.simpleworkflow.flow.DataConverter의 인스턴스입니다.

 

DataConverter

도메인 이름 (공용)

사용할 워크플로 도메인입니다.

 

문자열

eventname (common)

사용할 워크플로 또는 활동 이벤트 이름입니다.

 

문자열

region (공용)

Amazon AWS 리전.

 

문자열

버전 (공용)

사용할 워크플로 또는 활동 이벤트 버전입니다.

 

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

클라이언트 구성 매개변수 (advanced)

맵의 키/값을 사용하여 ClientConfiguration을 구성하려면 다음을 수행합니다.

 

map

startWorkflowOptions 매개변수 (고급)

맵의 키/값을 사용하여 StartWorkflowOptions를 구성하려면 다음을 수행합니다.

 

map

sWClientParameters (advanced)

맵의 키/값을 사용하여 AmazonSimpleWorkflowClient를 구성하려면 다음을 수행합니다.

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

activityList (activity)

활동을 사용할 목록 이름입니다.

 

문자열

activitySchedulingOptions (activity)

활동 스케줄링 옵션

 

활동 일정 옵션

activityThreadPoolSize (activity)

작업에 대한 작업 풀의 최대 스레드 수입니다.

100

int

activityTypeExecution Options (activity)

활동 실행 옵션

 

ActivityTypeExecution Options

activityTypeRegistration Options (activity)

활동 등록 옵션

 

ActivityType RegistrationOptions

childPolicy (workflow)

워크플로를 종료할 때 하위 워크플로에서 사용할 정책입니다.

 

문자열

executionStartToClose Timeout (workflow)

실행 시작 시간을 닫기로 설정합니다.

3600

문자열

작업 (workflow)

워크플로 작업

START

문자열

signalName (workflow)

워크플로로 보낼 신호의 이름입니다.

 

문자열

stateResultType (workflow)

워크플로 상태를 쿼리할 때 결과 유형입니다.

 

문자열

taskStartToCloseTimeout (workflow)

작업 시작 시간을 닫기로 설정합니다.

600

문자열

terminationDetails (workflow)

워크플로 종료에 대한 세부 정보.

 

문자열

terminationReason (workflow)

워크플로를 종료하는 이유입니다.

 

문자열

workflowList (workflow)

워크플로우를 사용할 목록 이름입니다.

 

문자열

workflowTypeRegistration Options (workflow)

워크플로 등록 옵션

 

WorkflowType RegistrationOptions

accesskey (보안)

Amazon AWS Access Key입니다.

 

문자열

secretKey (security)

Amazon AWS Secret Key.

 

문자열

36.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 32 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.aws-swf.access-key

Amazon AWS Access Key입니다.

 

문자열

camel.component.aws-swf.configuration.access-key

Amazon AWS Access Key입니다.

 

문자열

camel.component.aws-swf.configuration.activity-list

활동을 사용할 목록 이름입니다.

 

문자열

camel.component.aws-swf.configuration.activity-scheduling-options

활동 스케줄링 옵션

 

활동 일정 옵션

camel.component.aws-swf.configuration.activity-thread-pool-size

작업에 대한 작업 풀의 최대 스레드 수입니다.

100

정수

camel.component.aws-swf.configuration.activity-type-execution-options

활동 실행 옵션

 

ActivityTypeExecution Options

camel.component.aws-swf.configuration.activity-type-registration-options

활동 등록 옵션

 

ActivityType RegistrationOptions

camel.component.aws-swf.configuration.amazon-s-w-client

지정된 AmazonSimpleWorkflowClient를 클라이언트로 사용하기 위해

 

AmazonSimpleWorkflow Client

camel.component.aws-swf.configuration.child-policy

워크플로를 종료할 때 하위 워크플로에서 사용할 정책입니다.

 

문자열

camel.component.aws-swf.configuration.client-configuration-parameters

맵의 키/값을 사용하여 ClientConfiguration을 구성하려면 다음을 수행합니다.

 

map

camel.component.aws-swf.configuration.data-converter

데이터 직렬화/데이저에 사용할 com.amazonaws.services.simpleworkflow.flow.DataConverter의 인스턴스입니다.

 

DataConverter

camel.component.aws-swf.configuration.domain-name

사용할 워크플로 도메인입니다.

 

문자열

camel.component.aws-swf.configuration.event-name

사용할 워크플로 또는 활동 이벤트 이름입니다.

 

문자열

camel.component.aws-swf.configuration.execution-start-to-close-timeout

실행 시작 시간을 닫기로 설정합니다.

3600

문자열

camel.component.aws-swf.configuration.operation

워크플로 작업

START

문자열

camel.component.aws-swf.configuration.region

Amazon AWS 리전.

 

문자열

camel.component.aws-swf.configuration.s-w-client-parameters

맵의 키/값을 사용하여 AmazonSimpleWorkflowClient를 구성하려면 다음을 수행합니다.

 

map

camel.component.aws-swf.configuration.secret-key

Amazon AWS Secret Key.

 

문자열

camel.component.aws-swf.configuration.signal-name

워크플로로 보낼 신호의 이름입니다.

 

문자열

camel.component.aws-swf.configuration.start-workflow-options-parameters

맵의 키/값을 사용하여 StartWorkflowOptions를 구성하려면 다음을 수행합니다.

 

map

camel.component.aws-swf.configuration.state-result-type

워크플로 상태를 쿼리할 때 결과 유형입니다.

 

문자열

camel.component.aws-swf.configuration.task-start-to-close-timeout

작업 시작 시간을 닫기로 설정합니다.

600

문자열

camel.component.aws-swf.configuration.termination-details

워크플로 종료에 대한 세부 정보.

 

문자열

camel.component.aws-swf.configuration.termination-reason

워크플로를 종료하는 이유입니다.

 

문자열

camel.component.aws-swf.configuration.type

활동 또는 워크플로우

 

문자열

camel.component.aws-swf.configuration.version

사용할 워크플로 또는 활동 이벤트 버전입니다.

 

문자열

camel.component.aws-swf.configuration.workflow-list

워크플로우를 사용할 목록 이름입니다.

 

문자열

camel.component.aws-swf.configuration.workflow-type-registration-options

워크플로 등록 옵션

 

WorkflowType RegistrationOptions

camel.component.aws-swf.enabled

aws-swf 구성 요소 활성화

true

부울

camel.component.aws-swf.region

Amazon AWS 리전.

 

문자열

camel.component.aws-swf.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

camel.component.aws-swf.secret-key

Amazon AWS Secret Key.

 

문자열

필수 SWF 구성 요소 옵션

Amazon의 Simple Workflow Service에 액세스하려면 레지스트리 또는 accessKey 및 secretKey에 amazonSWClient를 제공해야 합니다.

36.4. 사용법

36.4.1. SWF Workflow Producer에서 평가한 메시지 헤더

워크플로 생산자를 사용하면 워크플로와 상호 작용할 수 있습니다. 새 워크플로 실행을 시작하고, 상태를 쿼리하거나, 실행 중인 워크플로에 신호를 보내거나, 종료한 후 취소할 수 있습니다.

Expand
header유형설명

CamelSWFOperation

문자열

워크플로에서 수행할 작업입니다. 지원되는 작업은
SIGNAL, CANCEL, TERMINATE, GET_STATE, START, DESCRIBE, GET_HISTORY입니다.

CamelSWFWorkflowId

문자열

사용할 워크플로 ID입니다.

CamelAwsDdbKeyCamelSWFRunId

문자열

사용할 worfklow 실행 ID입니다.

CamelSWFStateResultType

문자열

워크플로 상태를 쿼리할 때 결과 유형입니다.

CamelSWFEventName

문자열

사용할 워크플로 또는 활동 이벤트 이름입니다.

CamelSWFVersion

문자열

사용할 워크플로 또는 활동 이벤트 버전입니다.

CamelSWFReason

문자열

워크플로를 종료하는 이유입니다.

CamelSWFDetails

문자열

워크플로 종료에 대한 세부 정보.

CamelSWFChildPolicy

문자열

워크플로를 종료할 때 하위 워크플로에서 사용할 정책입니다.

36.4.2. SWF Workflow Producer에서 설정한 메시지 헤더

Expand
header유형설명

CamelSWFWorkflowId

문자열

사용된 worfklow ID 또는 새로 생성된 ID입니다.

CamelAwsDdbKeyCamelSWFRunId

문자열

worfklow는 사용되거나 생성된 ID를 실행합니다.

36.4.3. SWF 워크플로 Consumer에서 설정한 메시지 헤더

워크플로 소비자는 워크플로 논리를 나타냅니다. 이 서비스가 시작되면 폴링 워크플로 결정 작업을 시작하고 처리합니다. 워크플로 소비자 경로 처리 외에도 워크플로 소비자 경로도 신호(플래시 생산자에서 종료) 또는 상태 쿼리를 수신합니다. 워크플로 소비자의 주요 목적은 활동 생산자를 사용하여 실행할 활동 작업을 예약하는 것입니다. 실제로 활동 작업은 워크플로 소비자가 시작한 스레드에서만 예약할 수 있습니다.

Expand
header유형설명

CamelSWFAction

문자열

CamelSWFActionExecute, CamelSWFSignalReceivedAction 또는 CamelSWFGetStateAction의 현재 이벤트임을 나타냅니다.

CamelSWFWorkflowReplaying

boolean

현재 결정 작업이 재생인지 여부를 나타냅니다.Indicates whether the current decision task is a replay.

CamelSWFWorkflowStartTime

long

이 결정 작업의 시작 이벤트 시간입니다.

36.4.4. SWF Activity Producer에서 설정한 메시지 헤더

활동 생산자를 사용하면 활동 작업을 예약할 수 있습니다. 활동 생산자는 워크플로 소비자에 의해 시작된 스레드에서만 사용할 수 있으며 워크플로 소비자가 시작한 동기 교환을 처리할 수 있습니다.

Expand
header유형설명

CamelSWFEventName

문자열

예약할 활동 이름입니다.

CamelSWFVersion

문자열

예약할 활동 버전입니다.

36.4.5. SWF 활동 소비자에 의해 설정된 메시지 헤더

Expand
header유형설명

CamelSWFTaskToken

문자열

수동으로 완료된 작업의 작업 완료를 보고하는 데 필요한 작업 토큰입니다.

36.4.6. 고급 AmazonSWClient 구성

AmazonSimpleWorkflowClient 인스턴스 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 만들고 URI에서 해당 인스턴스를 참조할 수 있습니다.

#client 는 레지스트리의 AmazonSimpleWorkflowClient를 나타냅니다.

예를 들어 Camel 애플리케이션이 방화벽 뒤에서 실행 중인 경우입니다.

AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);

AmazonSimpleWorkflowClient client = new AmazonSimpleWorkflowClient(awsCredentials, clientConfiguration);

registry.bind("client", client);
Copy to Clipboard Toggle word wrap

36.5. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.13 이상)으로 교체해야 합니다.

36.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기

AWS 구성 요소

37장. AWS XRay 구성 요소

Camel 2.21로 사용 가능

camel-aws-xray 구성 요소는 AWS XRay 를 사용하여 들어오고 나가는 Camel 메시지를 추적하고 타이밍하는 데 사용됩니다.

Camel로/에서 전송되는 수신 및 발신 메시지의 경우 이벤트(서브스크립션)를 캡처합니다.

37.1. 종속성

AWS XRay 지원을 Camel에 포함시키려면 Camel 관련 AWS XRay 관련 클래스가 포함된 아카이브를 프로젝트에 추가해야 합니다. 또한 AWS XRay 라이브러리도 사용할 수 있어야 합니다.

AWS XRay 및 Camel을 모두 포함하기 위해 종속성은 다음 Maven 가져오기를 사용합니다.

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-xray-recorder-sdk-bom</artifactId>
        <version>1.3.1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-aws-xray</artifactId>
      </dependency>

      <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-xray-recorder-sdk-core</artifactId>
      </dependency>
      <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-xray-recorder-sdk-aws-sdk</artifactId>
      </dependency>
  <dependencies>
Copy to Clipboard Toggle word wrap

37.2. 설정

AWS XRay tracer의 구성 속성은 다음과 같습니다.

Expand
옵션기본값설명

addExcludePatterns

 

패턴과 일치하는 Camel 메시지의 추적을 비활성화하는 exclude 패턴을 설정합니다. 콘텐츠는 키가 routeId와 일치하는 패턴인 Set<String>입니다. 이 패턴은 인터셉터의 규칙을 사용합니다.

setTracingStrategy

NoopTracingStrategy

BeanDefinition 또는 ProcessDefinition 과 같은 호출된 프로세서 정의를 추적하기 위해 사용자 정의 Camel InterceptStrategy 를 제공할 수 있습니다. TraceAnnotatedTracingStrategy 는 클래스 수준에서 @XRayTrace 주석이 포함된 .bean(…​) 또는 .process(…​) 를 통해 호출되는 모든 클래스를 추적합니다.

현재 AWS XRay 추적 프로그램을 구성하여 Camel 애플리케이션을 위한 분산 추적을 제공할 수 있는 방법은 한 가지뿐입니다.

37.2.1. 명시적인

AWS XRay Tracer와 관련된 특정 종속성과 함께 POM에 camel-aws-xray 구성 요소를 포함합니다.

AWS XRay 지원을 명시적으로 구성하려면 XRayTracer 를 인스턴스화하고 camel 컨텍스트를 초기화합니다. 선택적으로 추적기를 지정 하거나 레지스트리 또는 ServiceLoader 를 사용하여 암시적으로 검색할 수 있습니다.

XRayTracer xrayTracer = new XRayTracer();
// By default it uses a NoopTracingStrategy, but you can override it with a specific InterceptStrategy implementation.
xrayTracer.setTracingStrategy(...);
// And then initialize the context
xrayTracer.init(camelContext);
Copy to Clipboard Toggle word wrap

XML에서 XRayTracer를 사용하려면 AWS XRay 추적기 빈을 정의하는 것입니다. Camel은 자동으로 검색하고 사용할 수 있습니다.

  <bean id="tracingStrategy" class="..."/>
  <bean id="aws-xray-tracer" class="org.apache.camel.component.aws.xray.XRayTracer" />
    <property name="tracer" ref="tracingStrategy"/>
  </bean>
Copy to Clipboard Toggle word wrap

기본 NoopTracingStrategy 의 경우 교환 생성 및 삭제만 추적되지만 특정 빈 또는 EIP 패턴을 호출하지는 않습니다.

37.2.2. 포괄적인 경로 실행 추적

여러 경로 간에 교환 실행을 추적하기 위해 교환 시 고유한 추적 ID가 생성되고 해당 값을 아직 사용할 수 없는 경우 헤더에 저장됩니다. 이 추적 ID는 처리된 교환에 대한 일관된 관점을 유지하기 위해 새 교환에 복사됩니다.

AWS XRay 추적은 스레드-로컬 기반으로 작동하므로 현재 하위/세그는 새 스레드로 복사되고 AWS XRay 문서에 설명된 대로 설정해야 합니다. 따라서 Camel AWS XRay 구성 요소는 전달된 AWS XRay Entity 를 새 스레드로 설정하기 위해 구성 요소가 사용할 추가 헤더 필드를 제공하므로 실행된 경로와 관련이 없는 새로운 세그먼트를 공개하지 않고 추적된 데이터를 경로에 유지합니다.

구성 요소는 교환의 헤더에 있는 다음과 같은 상수를 사용합니다.

Expand
header설명

Camel-AWS-XRay-Trace-ID

호출된 경로에 대한 포괄적인 보기를 제공하는 AWS XRay TraceID 개체에 대한 참조가 포함되어 있습니다.

Camel-AWS-XRay-Trace-Entity

새 스레드로 복사되는 실제 AWS XRay Segment 또는 Subsegment 에 대한 참조가 포함되어 있습니다. 새 스레드가 생성되는 경우 이 헤더를 설정해야 하며 관련이 없는 새 세그먼트를 생성하는 대신 실행된 경로의 일부로 수행되는 작업을 노출해야 합니다.

AWS XRay Entity (예: SegmentSubsegment)는 직렬화할 수 없으므로 다른 JVM 프로세스에 전달해서는 안 됩니다.

37.3. 예제

이 프로젝트와 함께 제공되는 테스트 내에서 AWS XRay 추적을 구성하는 방법을 시연하는 예를 찾을 수 있습니다.

38장. Windows Azure Services용 Camel 구성 요소

Windows Azure Services 용 Camel 구성 요소는 Camel에서 Azure 서비스에 대한 연결을 제공합니다.

 

Expand
Azure ServiceCamel 구성 요소Camel 버전구성 요소 설명

Storage Blob 서비스

Azure-Blob

2.9.0

Blob 저장 및 검색 지원

스토리지 대기열 서비스

Azure-Queue

2.9.0

큐에 메시지 저장 및 검색 지원

39장. Azure Storage Blob Service 구성 요소

Camel 버전 2.19에서 사용 가능

Azure Blob 구성 요소는 Azure Storage Blob 서비스로 Blob을 저장하고 검색할 수 있도록 지원합니다.The Azure Blob component supports storing and retrieving the blobs to/from Azure Storage Blob service.

사전 요구 사항

유효한 Windows Azure Storage 계정이 있어야 합니다. 자세한 내용은 Azure 설명서 포털에서 확인할 수 있습니다.

39.1. URI 형식

azure-blob://accountName/containerName[/blobName][?options]
Copy to Clipboard Toggle word wrap

대부분의 경우 BlobName이 필요하며 Blob이 아직 없으면 생성됩니다.In most cases a blobName is required and the blob will be created if it does not already exist.
다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

예를 들어 camelazure 스토리지 계정의 container1 에 있는 공용 블록 Blob blockBlob 에서 Blob 콘텐츠를 다운로드하려면 다음 스니펫을 사용합니다.

from("azure-blob:/camelazure/container1/blockBlob").
to("file://blobdirectory");
Copy to Clipboard Toggle word wrap

39.2. URI 옵션

Azure Storage Blob Service 구성 요소에는 옵션이 없습니다.

Azure Storage Blob 서비스 끝점은 URI 구문을 사용하여 구성됩니다.

azure-blob:containerOrBlobUri
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

39.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

containerOrBlobUri

필수 컨테이너 또는 Blob 컴팩트한 Uri

 

문자열

39.2.2. 쿼리 매개변수(19 매개변수):

Expand
이름설명기본값유형

azureBlobClient (일반)

Blob 서비스 클라이언트

 

CloudBlob

BlobOffset (common)

업로드 또는 다운로드 작업의 Blob 오프셋 설정, 기본값은 0입니다.

0

long

blobType (common)

Blob 유형 설정, 'blockblob'이 기본값입니다.

blockblob

BlobType

CloseStreamAfterRead (일반)

읽기 후 스트림을 닫거나 열어 두면 기본값은 true입니다.

true

boolean

인증 정보(공용)

대부분의 경우 필요한 스토리지 인증 정보 설정

 

StorageCredentials

dataLength (common)

다운로드 또는 페이지 Blob 업로드 작업의 데이터 길이 설정

 

long

fileDir (일반)

다운로드한 Blob이 저장될 파일 디렉터리를 설정합니다.Set the file directory where the downloaded Blob will be saved to.

 

문자열

publicForRead (일반)

이 속성이 활성화된 경우 인증 정보를 설정할 필요가 없는 경우 해당 콘텐츠를 읽을 수 있도록 스토리지 리소스가 공용일 수 있습니다.

false

boolean

streamReadSize (일반)

Blob 콘텐츠를 읽을 때 바이트 단위로 최소 읽기 크기 설정

 

int

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

BlobMetadata (producer)

blob 메타 데이터 설정

 

map

blobPrefix (producer)

Blob을 나열하는 데 사용할 수 있는 접두사 설정

 

문자열

CloseStreamAfterWrite (producer)

쓰기 후 스트림을 닫거나 열어 두며 기본값은 true입니다.

true

boolean

작업 (producer)

생산자에 대한 Blob 서비스 작업 힌트

listBlobs

BlobServiceOperations

streamWriteSize (producer)

블록 및 페이지 블록을 쓰기 위한 버퍼의 크기 설정

 

int

useFlatListing (producer)

플랫 또는 계층적 Blob 목록을 사용해야 하는지 지정합니다.

true

boolean

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

39.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.azure-blob.enabled

azure-blob 구성 요소 활성화

true

부울

camel.component.azure-blob.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

필수 Azure Storage Blob 서비스 구성 요소 옵션

개인 Blob에 액세스해야 하는 경우 컨테이너OrBlob 이름과 자격 증명을 제공해야 합니다.

39.4. 사용법

39.4.1. Azure Storage Blob 서비스 생산자가 평가한 메시지 헤더

Expand
header유형설명
   

39.4.2. Azure Storage Blob 서비스 생산자에서 설정한 메시지 헤더

Expand
header유형설명

CamelFileName

문자열

다운로드한 Blob 콘텐츠의 파일 이름입니다.

39.4.3. Azure Storage Blob 서비스 생산자가 설정한 메시지 헤더

Expand
header유형설명

CamelFileName

문자열

다운로드한 Blob 콘텐츠의 파일 이름입니다.

39.4.4. Azure Blob 서비스 작업

모든 블록 유형에 공통적인 작업

Expand
작업설명

getBlob

Blob의 내용을 가져옵니다.Gets the content of the blob. 이 작업의 출력을 Blob 범위로 제한할 수 있습니다.

deleteBlob

Blob을 삭제합니다.

listBlobs

Blob을 나열합니다.

블록 Blob 작업

Expand
작업설명

updateBlockBlob

새 블록 Blob을 만들거나 기존 블록 Blob 콘텐츠를 덮어쓰는 블록 Blob 콘텐츠를 배치합니다.

uploadBlobBlocks

먼저 Blob 블록 시퀀스를 생성한 다음 Blob에 커밋하여 블록 Blob 콘텐츠를 업로드합니다. 메시지 CommitBlockListLater 속성을 활성화하면 나중에 commitBlobBlockList 작업을 사용하여 커밋을 실행할 수 있습니다. 나중에 개별 블록 Blob을 업데이트할 수 있습니다.

commitBlobBlockList

Blob 블록의 시퀀스를 Blob 서비스에 이전에 업로드한 블록 목록에 커밋합니다(Update BlockBlob 작업을 CommitBlockListLater 속성과 함께 사용함).

getBlobBlockList

block blob 목록을 가져옵니다.

Blob 작업 추가

Expand
작업설명

createAppendBlob

추가 블록을 생성합니다. 기본적으로 블록이 이미 존재하는 경우 재설정되지 않습니다. 대신 AppendBlob 속성과 updateAppendBlob 작업을 사용하여 추가 Blob을 만들 수 있습니다.

updateAppendBlob

Blob에 새 콘텐츠를 추가합니다.Appends the new content to the blob. 이 작업은 또한 Blob이 아직 존재하지 않고 AppendBlobCreated 메시지를 사용하도록 설정한 경우 새로 생성합니다.

페이지 블록 작업

Expand
작업설명

createPageBlob

페이지 블록을 생성합니다. 기본적으로 블록이 이미 존재하는 경우 재설정되지 않습니다. 또한 PageBlob 속성과 updatePageBlob 작업을 사용하여 메시지 PageBlob 를 활성화하여 페이지 Blob을 만들고 내용을 설정할 수도 있습니다.

updatePageBlob

PageBlobCreated 속성 및 동일한 이름의 블록이 이미 존재하는 경우 페이지 블록을 만들고 이 Blob의 콘텐츠를 설정합니다.

resizePageBlob

페이지 Blob의 크기를 조정합니다.

clearPageBlob

Blob 페이지를 지웁니다.

getPageBlobRanges

Blob 페이지 범위를 가져옵니다.

39.4.5. Azure Blob 클라이언트 구성

Camel 애플리케이션이 방화벽 뒤에서 실행 중이거나 Azure Blob Client 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 만들 수 있습니다.

StorageCredentials credentials = new StorageCredentialsAccountAndKey("camelazure", "thekey");

CloudBlob client = new CloudBlob("camelazure", credentials);

registry.bind("azureBlobClient", client);
Copy to Clipboard Toggle word wrap

Camel azure-blob 구성 요소 구성에서 참조하십시오.

from("azure-blob:/camelazure/container1/blockBlob?azureBlobClient=#client")
.to("mock:result");
Copy to Clipboard Toggle word wrap

39.5. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-azure</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.19.0 이상)으로 교체해야 합니다.

39.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • Azure Component

40장. Azure Storage Queue Service 구성 요소

Camel 버전 2.19에서 사용 가능

Azure Queue 구성 요소는 Azure Storage 큐 서비스로 메시지를 저장하고 검색할 수 있도록 지원합니다.The Azure Queue component supports storing and retrieving the messages to/from Azure Storage Queue service.

사전 요구 사항

유효한 Microsoft Azure 계정이 있어야 합니다. 자세한 내용은 Azure Portal 에서 확인할 수 있습니다.

40.1. URI 형식

azure-queue://accountName/queueName[?options]
Copy to Clipboard Toggle word wrap

큐가 없으면 해당 큐가 생성됩니다.
다음 형식 ?options=value&option2=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

예를 들어 camelazure 스토리지 계정의 큐 메시지 대기열 에서 메시지 콘텐츠를 가져오고 다음 스니펫을 사용합니다.

from("azure-queue:/camelazure/messageQueue").
to("file://queuedirectory");
Copy to Clipboard Toggle word wrap

40.2. URI 옵션

Azure Storage Queue Service 구성 요소에는 옵션이 없습니다.

Azure Storage Queue Service 끝점은 URI 구문을 사용하여 구성됩니다.

azure-queue:containerAndQueueUri
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

40.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

containerAndQueueUri

필수 컨테이너 큐 컴팩트한 Uri

 

문자열

40.2.2. 쿼리 매개 변수(10 매개변수:

Expand
이름설명기본값유형

azureQueueClient (일반)

큐 서비스 클라이언트

 

CloudQueue

인증 정보(공용)

대부분의 경우 필요한 스토리지 인증 정보 설정

 

StorageCredentials

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

messageTimeToLive (producer)

Time to Live in seconds

 

int

messageVisibilityDelay (producer)

메시지 표시 가능 시간(초)

 

int

작업 (producer)

사용자가 메시지만 보내고 싶지 않은 경우 수행할 작업입니다. 세 가지 열거형 옵션이 있으며 값은 sendBatchMessage, deleteMessage, listQueues 중 하나일 수 있습니다.

listQueues

QueueServiceOperations

queuePrefix (producer)

큐를 나열하는 데 사용할 수 있는 접두사 설정

 

문자열

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

40.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.azure-queue.enabled

azure-queue 구성 요소 활성화

true

부울

camel.component.azure-queue.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

필수 Azure Storage Queue Service 구성 요소 옵션

containerAndQueue URI와 자격 증명을 제공해야 합니다.

40.4. 사용법

40.4.1. Azure Storage Queue Service 생산자에서 평가한 메시지 헤더

Expand
header유형설명
   

40.4.2. Azure Storage Queue Service 생산자에서 설정한 메시지 헤더

Expand
header유형설명
   

40.4.3. Azure Storage 큐 서비스 생산자가 설정한 메시지 헤더

Expand
header유형설명
   

40.4.4. Azure Queue Service 작업

Expand
작업설명

listQueues

대기열을 나열합니다.

createQueue

큐를 만듭니다.

deleteQueue

큐를 삭제합니다.

addMessage

큐에 메시지를 추가합니다.

retrieveMessage

큐에서 메시지를 검색합니다.

peekMessage

예를 들어 큐 내의 메시지를 보고 메시지가 올바른 큐에 도착했는지 확인합니다.

updateMessage

큐에서 메시지를 업데이트합니다.

deleteMessage

큐에서 메시지를 삭제합니다.

40.4.5. Azure Queue Client 구성

Camel 애플리케이션이 방화벽 뒤에서 실행 중이거나 Azure Queue Client 구성을 더 많이 제어해야 하는 경우 고유한 인스턴스를 생성할 수 있습니다.

StorageCredentials credentials = new StorageCredentialsAccountAndKey("camelazure", "thekey");

CloudQueue client = new CloudQueue("camelazure", credentials);

registry.bind("azureQueueClient", client);
Copy to Clipboard Toggle word wrap

Camel azure-queue 구성 요소 구성에서 참조하십시오.

from("azure-queue:/camelazure/messageQueue?azureQueueClient=#client")
.to("mock:result");
Copy to Clipboard Toggle word wrap

40.5. 종속 항목

Maven 사용자는 다음 종속성을 pom.xml에 추가해야 합니다.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-azure</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.19.0 이상)으로 교체해야 합니다.

40.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • Azure Component

41장. Barcode DataFormat

Camel 버전 2.14로 사용 가능

바코드 데이터 형식은 zxing 라이브러리 를 기반으로 합니다. 이 구성 요소의 목표는 문자열(marshal) 및 바코드 이미지(unmarshal)에서 문자열에서 바코드 이미지를 생성하는 것입니다. zxing이 제공하는 모든 기능을 자유롭게 사용할 수 있습니다.

41.1. 종속 항목

camel 경로에서 바코드 데이터 형식을 사용하려면 이 데이터 형식을 구현하는 camel-barcode 에 종속성을 추가해야 합니다.

maven을 사용하는 경우 pom.xml에 다음을 추가하면 최신 및 가장 큰 릴리스의 버전 번호를 대체합니다(최신 버전의 다운로드 페이지 참조).

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-barcode</artifactId>
  <version>x.x.x</version>
</dependency>
Copy to Clipboard Toggle word wrap

41.2. Barcode Options

Barcode dataformat은 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름기본값Java Type설명

width

 

정수

바코드의 너비입니다.

height

 

정수

바코드의 높이

imageType

 

문자열

png과 같은 바코드의 이미지 유형

barcodeFormat

 

문자열

QR-Code와 같은 Barcode 형식

contentTypeHeader

false

부울

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

41.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 6 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.dataformat.barcode.barcode-format

QR-Code와 같은 Barcode 형식

 

문자열

camel.dataformat.barcode.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.barcode.enabled

바코드 데이터 형식 사용

true

부울

camel.dataformat.barcode.height

바코드의 높이

 

정수

camel.dataformat.barcode.image-type

png과 같은 바코드의 이미지 유형

 

문자열

camel.dataformat.barcode.width

바코드의 너비입니다.

 

정수

ND

41.4. Java DSL 사용

먼저 바코드 데이터 fomat 클래스를 초기화해야합니다. 기본 생성자를 사용하거나 매개 변수화된 중 하나를 사용할 수 있습니다(JavaDoc 참조). 기본값은 다음과 같습니다.

Expand
매개변수기본값

이미지 유형 (BarcodeImageType)

PNG

width

100px

높이

100px

인코딩

UTF-8

Barcode 형식 (BarcodeFormat)

QR-Code

// QR-Code default
DataFormat code = new BarcodeDataFormat();
Copy to Clipboard Toggle word wrap

zxing 힌트를 사용하려면 BarcodeDataFormat 인스턴스의 'addToHintMap' 메서드를 사용할 수 있습니다.

code.addToHintMap(DecodeHintType.TRY_HARDER, Boolean.true);
Copy to Clipboard Toggle word wrap

가능한 힌트는 xzing 설명서를 참조하십시오.

41.4.1. 마샬링

from("direct://code")
  .marshal(code)
  .to("file://barcode_out");
Copy to Clipboard Toggle word wrap

다음을 사용하여 테스트 클래스에서 경로를 호출할 수 있습니다.

template.sendBody("direct://code", "This is a testmessage!");
Copy to Clipboard Toggle word wrap

이 이미지 안에 'barcode_out' 폴더를 찾을 수 있습니다.

image

41.4.2. unmarshalling

unmarshaller는 일반적인 것입니다. unmarshalling의 경우 BarcodeDataFormat 인스턴스를 사용할 수 있습니다. 두 개의 인스턴스가 있는 경우, QR-Code용이고 다른 하나는 PDF417용이므로 어떤 인스턴스가 사용될지 중요하지 않습니다.

from("file://barcode_in?noop=true")
  .unmarshal(code) // for unmarshalling, the instance doesn't matter
  .to("mock:out");
Copy to Clipboard Toggle word wrap

위의 QR-Code 이미지를 'barcode_in' 폴더에 붙여 넣으면, 이는 모크 내부에 testmessage! 임을 알 수 있습니다. 바코드 데이터 형식을 헤더 변수로 찾을 수 있습니다.

Expand
이름유형설명

BarcodeFormat

문자열

com.google.zxing.BarcodeFormat의 값입니다.

 

 

42장. Base64 DataFormat

Camel 버전 2.11로 사용 가능

Base64 데이터 형식은 base64 인코딩 및 디코딩에 사용됩니다.

42.1. 옵션

Base64 dataformat은 아래 나열된 4가지 옵션을 지원합니다.

Expand
이름기본값Java Type설명

lineLength

76

정수

인코딩된 데이터의 최대 줄 길이를 지정합니다. 76 기본적으로 사용됩니다.

lineSeparator

 

문자열

사용할 줄 구분 기호입니다. 기본적으로 새 줄 문자(CRLF)를 사용합니다.

urlSafe

false

부울

'' 및 '/'를 내보내는 대신 '-' 및 '_'를 각각 내보냅니다. urlSafe는 작업 인코딩에만 적용됩니다. 디코딩은 두 모드를 모두 원활하게 처리합니다. 기본값은 false입니다.

contentTypeHeader

false

부울

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

42.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 5 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.dataformat.base64.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.base64.enabled

base64 데이터 형식 활성화

true

부울

camel.dataformat.base64.line-length

인코딩된 데이터의 최대 줄 길이를 지정합니다. 76 기본적으로 사용됩니다.

76

정수

camel.dataformat.base64.line-separator

사용할 줄 구분 기호입니다. 기본적으로 새 줄 문자(CRLF)를 사용합니다.

 

문자열

camel.dataformat.base64.url-safe

'' 및 '/'를 내보내는 대신 '-' 및 '_'를 각각 내보냅니다. urlSafe는 작업 인코딩에만 적용됩니다. 디코딩은 두 모드를 모두 원활하게 처리합니다. 기본값은 false입니다.

false

부울

ND

Spring DSL에서는 다음 태그를 사용하여 데이터 형식을 구성합니다.

<camelContext>
    <dataFormats>
        <!-- for a newline character (\n), use the HTML entity notation coupled with the ASCII code. -->
        <base64 lineSeparator="&#10;" id="base64withNewLine" />
        <base64 lineLength="64" id="base64withLineLength64" />
    </dataFormats>
    ...
</camelContext>
Copy to Clipboard Toggle word wrap

그런 다음 나중에 해당 참조를 사용할 수 있습니다.

<route>
     <from uri="direct:startEncode" />
     <marshal ref="base64withLineLength64" />
     <to uri="mock:result" />
</route>
Copy to Clipboard Toggle word wrap

대부분의 경우 기본 옵션을 사용하는 경우 데이터 형식을 선언할 필요가 없습니다. 이 경우 다음과 같이 인라인 데이터 형식을 선언할 수 있습니다.In that case, you can declare the data format inline as shown below.

42.3. Marshal

이 예제에서는 파일 내용을 base64 개체로 마샬링합니다.

from("file://data.bin")
    .marshal().base64()
    .to("jms://myqueue");
Copy to Clipboard Toggle word wrap

Spring DSL에서 다음을 수행합니다.

 <from uri="file://data.bin">
 <marshal>
     <base64/>
 </marshal>
 <to uri="jms://myqueue"/>
Copy to Clipboard Toggle word wrap

42.4. unmarshal

이 예제에서는 newOrder 프로세서에서 처리되기 전에 JMS 대기열에서 byte[] 오브젝트로 페이로드를 분리합니다.

from("jms://queue/order")
    .unmarshal().base64()
    .process("newOrder");
Copy to Clipboard Toggle word wrap

Spring DSL에서 다음을 수행합니다.

 <from uri="jms://queue/order">
 <unmarshal>
     <base64/>
 </unmarshal>
 <to uri="bean:newOrder"/>
Copy to Clipboard Toggle word wrap

42.5. 종속 항목

Camel 경로에서 Base64를 사용하려면 이 데이터 형식을 구현하는 camel-base64 에 종속성을 추가해야 합니다.

Maven을 사용하는 경우 pom.xml에 다음을 추가할 수 있습니다.

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-base64</artifactId>
  <version>x.x.x</version>  <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

43장. 빈 구성 요소

Camel 버전 1.0에서 사용 가능

빈: 구성 요소는 Camel 메시지 교환에 빈을 바인딩합니다.

43.1. URI 형식

bean:beanName[?options]
Copy to Clipboard Toggle word wrap

여기서 beanID 는 레지스트리에서 빈을 찾는 데 사용되는 문자열일 수 있습니다.

43.2. 옵션

Bean 구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

cache (advanced)

이 기능을 활성화하면 Camel이 첫 번째 레지스트리 조회 결과를 캐시합니다. 레지스트리의 빈이 Singleton 범위로 정의된 경우 캐시를 활성화할 수 있습니다.

 

부울

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Bean 엔드포인트는 URI 구문을 사용하여 구성됩니다.

bean:beanName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

43.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

beanName

필요한 빈의 이름 설정

 

문자열

43.2.2. 쿼리 매개변수 (5 매개변수):

Expand
이름설명기본값유형

방법 (producer)

빈에서 호출할 메서드의 이름을 설정합니다.

 

문자열

cache (advanced)

이 기능을 활성화하면 Camel이 첫 번째 레지스트리 조회 결과를 캐시합니다. 레지스트리의 빈이 Singleton 범위로 정의된 경우 캐시를 활성화할 수 있습니다.

 

부울

multiParameterArray (advanced)

더 이상 사용되지 않는 방법 메시지 본문에서 전달되는 매개 변수를 처리하는 방법; true인 경우 메시지 본문이 매개 변수의 배열이어야 합니다. 참고: 이 옵션은 Camel에 의해 내부적으로 사용되며 최종 사용자가 사용할 수 없습니다. 사용 중단 참고: 이 옵션은 Camel에 의해 내부적으로 사용되며 최종 사용자가 사용할 수 없습니다.

false

boolean

매개변수 (고급)

빈에서 추가 속성을 구성하는 데 사용됩니다.

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

다음 형식 ?option=value&option=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

43.3. 사용

메시지를 사용하는 데 사용되는 오브젝트 인스턴스는 레지스트리에 명시적으로 등록되어 있어야 합니다. 예를 들어 Spring을 사용하는 경우 Spring 구성, spring.xml 에 빈을 정의해야 합니다. 또는 JNDI에 빈을 등록하여 Spring을 사용하지 않는 경우.

오류 형식 매크로: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20

엔드포인트가 등록되면 이를 사용하여 Exchange를 처리하는 Camel 경로를 빌드할 수 있습니다.

빈: 엔드포인트는 경로에 대한 입력으로 정의할 수 없습니다. 즉, 일부 인바운드 메시지 끝점에서 빈 엔드포인트로만 라우팅할 수 없습니다. 따라서 직접: 또는 queue: 엔드포인트를 입력으로 사용하는 것이 좋습니다.

ProxyHelper 에서 createProxy() 메서드를 사용하여 BeanExchanges를 생성하고 모든 끝점으로 보내는 프록시를 생성할 수 있습니다.

Spring DSL을 사용하는 것과 동일한 경로:

<route>
   <from uri="direct:hello">
   <to uri="bean:bye"/>
</route>
Copy to Clipboard Toggle word wrap

43.4. 끝점으로 빈

Camel은 또한 Endpoint로 Bean 호출을 지원합니다. 아래 경로에서:

교환이 myBean Camel로 라우팅되면 빈을 호출하기 위해 빈을 호출합니다.
빈의 소스는 일반 POJO에 불과합니다.

Camel은 Exchange의 In body를 String 유형으로 변환하고 Exchange Out body에 메서드 출력을 저장하여 sayHello 메서드를 호출합니다.

43.5. Java DSL 빈 구문

Java DSL은 빈 구성 요소에 대한 구문 분석 설 탕과 함께 제공됩니다. 빈을 엔드포인트(예: ("bean:beanName"))로 명시적으로 지정하는 대신 다음 구문을 사용할 수 있습니다.

// Send message to the bean endpoint
// and invoke method resolved using Bean Binding.
from("direct:start").beanRef("beanName");

// Send message to the bean endpoint
// and invoke given method.
from("direct:start").beanRef("beanName", "methodName");
Copy to Clipboard Toggle word wrap

빈에 참조 이름을 전달하는 대신( Camel이 레지스트리에서 해당 참조를 조회할 예정) 빈 자체를 지정할 수 있습니다.

// Send message to the given bean instance.
from("direct:start").bean(new ExampleBean());

// Explicit selection of bean method to be invoked.
from("direct:start").bean(new ExampleBean(), "methodName");

// Camel will create the instance of bean and cache it for you.
from("direct:start").bean(ExampleBean.class);
Copy to Clipboard Toggle word wrap

43.6. 빈 바인딩

빈 메서드를 호출하는 방법( 메서드 매개 변수를 통해 명시적으로 지정되지 않은 경우) 및 메시지에서 매개 변수 값을 구성하는 방법은 모두 Camel의 다양한 빈 통합 메커니즘에서 사용되는 Bean Binding 메커니즘에 의해 정의됩니다.

43.7. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • 클래스 구성 요소
  • 빈 바인딩
  • 빈 통합

44장. BeanIO DataFormat

Camel 버전 2.10에서 사용 가능

BeanIO 데이터 형식은 BeanIO 를 사용하여 플랫 페이로드(예: XML, CSV, 구분된 또는 고정 길이 형식)를 처리합니다.

BeanIO는 플랫 형식에서 POJO(Object)에 대한 매핑을 정의하는 매핑 XML 파일을 사용하여 구성됩니다. 이 매핑 파일은 사용하기 위해 필수입니다.

44.1. 옵션

BeanIO dataformat은 아래에 나열된 9가지 옵션을 지원합니다.

Expand
이름기본값Java Type설명

mapping

 

문자열

BeanIO 매핑 파일. 기본적으로 classpath에서 로드됩니다. file:, http: 또는 classpath: 접두사를 추가하여 매핑 파일을 로드할 위치를 나타낼 수 있습니다.

streamName

 

문자열

사용할 스트림의 이름입니다.

ignoreUnidentifiedRecords

false

부울

확인되지 않은 레코드를 무시할지 여부입니다.

ignoreUnexpectedRecords

false

부울

예기치 않은 레코드를 무시할지 여부입니다.

ignoreInvalidRecords

false

부울

유효하지 않은 레코드를 무시할지 여부입니다.

인코딩

 

문자열

사용할 문자입니다. 기본적으로 JVM 플랫폼 기본 charset입니다.

beanReaderErrorHandlerType

 

문자열

사용자 지정 org.apache.camel.dataformat.beanio.BeanIOErrorHandler를 구문 분석하는 동안 오류 처리기로 사용하려면 다음을 수행합니다. 오류 처리기의 정규화된 클래스 이름을 구성합니다.Configure the fully qualified class name of the error handler. 사용자 지정 오류 처리기를 사용할 때 ignoreUnidentifiedRecords, ignoreUnectedRecords 및 ignoreInvalidRecords 옵션이 사용되지 않을 수 있습니다.

unmarshalSingleObject

false

부울

이 옵션은hal을 오브젝트 목록 또는 단일 개체로만 구분할지 여부를 제어합니다. 전자는 기본 모드이며, 후자는 빈io가 Camel 메시지를 단일 POJO 빈에 매핑하는 특수 사용 사례에서만 사용됩니다.

contentTypeHeader

false

부울

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

44.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 10 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.dataformat.beanio.bean-reader-error-handler-type

사용자 지정 org.apache.camel.dataformat.beanio.BeanIOErrorHandler를 구문 분석하는 동안 오류 처리기로 사용하려면 다음을 수행합니다. 오류 처리기의 정규화된 클래스 이름을 구성합니다.Configure the fully qualified class name of the error handler. 사용자 지정 오류 처리기를 사용할 때 ignoreUnidentifiedRecords, ignoreUnectedRecords 및 ignoreInvalidRecords 옵션이 사용되지 않을 수 있습니다.

 

문자열

camel.dataformat.beanio.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.beanio.enabled

빈io 데이터 형식 활성화

true

부울

camel.dataformat.beanio.encoding

사용할 문자입니다. 기본적으로 JVM 플랫폼 기본 charset입니다.

 

문자열

camel.dataformat.beanio.ignore-invalid-records

유효하지 않은 레코드를 무시할지 여부입니다.

false

부울

camel.dataformat.beanio.ignore-unexpected-records

예기치 않은 레코드를 무시할지 여부입니다.

false

부울

camel.dataformat.beanio.ignore-unidentified-records

확인되지 않은 레코드를 무시할지 여부입니다.

false

부울

camel.dataformat.beanio.mapping

BeanIO 매핑 파일. 기본적으로 classpath에서 로드됩니다. file:, http: 또는 classpath: 접두사를 추가하여 매핑 파일을 로드할 위치를 나타낼 수 있습니다.

 

문자열

camel.dataformat.beanio.stream-name

사용할 스트림의 이름입니다.

 

문자열

camel.dataformat.beanio.unmarshal-single-object

이 옵션은hal을 오브젝트 목록 또는 단일 개체로만 구분할지 여부를 제어합니다. 전자는 기본 모드이며, 후자는 빈io가 Camel 메시지를 단일 POJO 빈에 매핑하는 특수 사용 사례에서만 사용됩니다.

false

부울

ND

44.3. 사용법

매핑 파일의 예는 다음과 같습니다.

44.3.1. Java DSL 사용

BeanIODataFormat 을 사용하려면 매핑 파일 및 스트림 이름으로 데이터 형식을 구성해야 합니다.
Java DSL에서는 다음과 같이 수행할 수 있습니다. streamName은 "employeeFile"입니다.

그 다음에는 두 개의 경로가 있습니다. 첫 번째 경로는 CSV 데이터를 List<Employee> Java 오브젝트로 변환하는 것입니다. 그런 다음 분할하므로, mock endpoint
는 각 행에 대한 메시지를 수신합니다.

두 번째 경로는 역방향 작업에서 List<Employee>를 CSV 데이터 스트림으로 변환하는 것입니다.

CSV 데이터는 예를 들면 다음과 같습니다.

44.3.2. XML DSL 사용

XML에서 BeanIO 데이터 형식을 사용하려면 아래와 같이 <beanio> XML 태그를 사용하여 구성해야 합니다. 경로는 위의 예와 유사합니다.

44.4. 종속 항목

Camel 경로에서 BeanIO를 사용하려면 이 데이터 형식을 구현하는 camel-beanio 에 종속성을 추가해야 합니다.

Maven을 사용하는 경우 pom.xml에 다음을 추가하여 최신 및 가장 큰 릴리스의 버전 번호를 대체합니다(최신 버전의 다운로드 페이지 참조).

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-beanio</artifactId>
  <version>2.10.0</version>
</dependency>
Copy to Clipboard Toggle word wrap

45장. Beanstalk 구성 요소

Camel 버전 2.15에서 사용 가능

Camel-beanstalk 프로젝트는 Beanstalk 작업의 작업 검색 및 후처리를 위한 Camel 구성 요소를 제공합니다.

Beanstalk 작업 라이프사이클에 대한 자세한 설명은 Beanstalk 프로토콜 에서 확인할 수 있습니다.

45.1. 종속 항목

Maven 사용자는 pom.xml에 다음 종속성을 추가해야 합니다.

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-beanstalk</artifactId>
  <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

여기서 ${camel-version}은 Camel의 실제 버전(2.15.0 이상)으로 교체해야 합니다.

45.2. URI 형식

beanstalk://[host[:port]][/tube][?options]
Copy to Clipboard Toggle word wrap

포트 또는 포트 모두 생략할 수 있습니다. 빈stalk의 경우 기본값은("local host " 및 11300)입니다.  튜 브를 생략하면 Be anstalk 구성 요소는 "default"라는 이름의 튜브를 사용합니다.

청취 할 때, 당신은 아마 여러 튜브에서 일자리를보고 싶을 수 있습니다. 더하기 기호로 구분하십시오(예:).

beanstalk://localhost:11300/tube1+tube2
Copy to Clipboard Toggle word wrap

튜브 이름은 URL 디코딩되므로, 튜브 이름에 + 또는 ?와 같은 특수 문자가 포함되어 있는 경우 URL을 적절히 코딩하거나 RAW 구문을 사용해야 합니다. 자세한 내용은 여기 를 참조하십시오.

따라서 Beanstalk에 작업을 작성할 때 여러 개의 튜브를 지정할 수 없습니다.

45.3. Beanstalk 옵션

Beanstalk 구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

connectionSettings Factory (일반)

Custom ConnectionSettingsFactory. Beanstalkd에 연결하는 데 사용할 ConnectionSettingsFactory를 지정합니다. 특히 빈stalkd 데몬없이 단위 테스트에 유용합니다 (파크 ConnectionSettings를 사용할 수 있음)

 

ConnectionSettings Factory

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Beanstalk 끝점은 URI 구문을 사용하여 구성됩니다.

beanstalk:connectionSettings
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

45.3.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

connectionSettings

연결 설정 host:port/tube

 

문자열

45.3.2. 쿼리 매개변수(26 매개변수):

Expand
이름설명기본값유형

command (common)

작업을 Beanstalk에 배치하는 것을 의미합니다. 작업 본문이 Camel 메시지 본문에 지정되어 있습니다. 작업 ID는 빈stalk.jobId 메시지 헤더에서 반환됩니다. delete, release, touch 또는 bury가 메시지 헤더 빈stalk.jobId의 작업 ID를 예상합니다. 이 작업의 결과는 빈stalk.result 메시지 헤더에서 반환되면 메시지 본문에 작업 수가 붙은 후 헤더 빈stalk.result에서 실제로 시작된 작업 수를 반환합니다.

 

BeanstalkCommand

JobDelay (일반)

작업을 초 단위로 지연합니다.

0

int

jobPriority (일반)

작업 우선 순위. (0이 가장 높은 것은 Beanstalk 프로토콜을 참조함)

1000

long

jobTimeToRun (common)

작업 시간(초 단위로 실행할 시간 0일 경우, 빈스talkd 데몬이 자동으로 1로 발생함)은 Beanstalk 프로토콜을 참조하십시오.

60

int

WaitJob (consumer)

빈stalk에서 작업을 시작하기 전에 작업이 완료될 때까지 대기하는지 여부

true

boolean

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

OnFailure( consumer)

처리할 때 사용할 명령이 실패했습니다.

 

BeanstalkCommand

sendEmptyMessageWhenIdle (consumer)

폴링 소비자가 파일을 폴링하지 않은 경우 이 옵션을 활성화하여 빈 메시지( 본문 없음)를 대신 보낼 수 있습니다.

false

boolean

useBlockIO (consumer)

blockIO를 사용할지 여부입니다.

true

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

pollStrategy (consumer)

플러그형 org.apache.camel.PollingConsumerPollingStrategy를 사용하면 Camel에서 Exchange를 생성하고 라우팅하기 전에 폴링 작업 중에 일반적으로 발생한 오류 처리를 제어하는 사용자 정의 구현을 제공할 수 있습니다.

 

PollingConsumerPoll Strategy

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

backoffErrorThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 오류 폴링(일부 오류 발생) 수입니다.

 

int

backoffIdleThreshold (scheduler)

백오프Multipler를 시작하기 전에 발생해야 하는 후속 유휴 폴링 수입니다.

 

int

backoffMultiplier (scheduler)

예약된 폴링 소비자 백오프가 연속된 여러 개의 유휴/errors가 있는 경우 해당 행에 사용할 수 있습니다. multiplier는 다음 실제 시도가 다시 발생하기 전에 건너뛸 폴링 수입니다. 이 옵션을 사용하는 경우 backoffIdleThreshold 및/또는 backoffErrorThreshold도 구성해야 합니다.

 

int

지연 (scheduler)

다음 폴링보다 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

500

long

greedy (scheduler)

greedy가 활성화된 경우 ScheduledPollConsumer는 이전 실행이 1개 이상의 메시지를 폴링하면 즉시 다시 실행됩니다.

false

boolean

initialDelay (scheduler)

첫 번째 폴링이 시작되기 전까지의 밀리초입니다. 60초(60초), 5m30초(5분 및 30초) 및 1h(1시간)와 같은 단위를 사용하여 시간 값을 지정할 수도 있습니다.

1000

long

runLoggingLevel (scheduler)

소비자는 폴링할 때 시작/완료 로그 행을 기록합니다. 이 옵션을 사용하면 로깅 수준을 구성할 수 있습니다.

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

소비자에 사용할 사용자 지정/공유 스레드 풀을 구성할 수 있습니다. 기본적으로 각 소비자는 자체 스레드 스레드 풀이 있습니다.

 

ScheduledExecutor Service

스케줄러 (scheduler)

camel-spring 또는 camel-quartz2 구성 요소에서 cron 스케줄러를 사용하려면

none

ScheduledPollConsumer Scheduler

스케줄러 속성 (scheduler)

사용자 지정 스케줄러 또는 Quartz2, Spring 기반 스케줄러를 사용할 때 추가 속성을 구성하려면 다음을 수행합니다.

 

map

StartScheduler (scheduler)

스케줄러가 자동으로 시작되어야 하는지 여부입니다.

true

boolean

timeUnit (scheduler)

initialDelay 및 지연 옵션의 시간 단위입니다.

밀리초

TimeUnit

UseFixedDelay (scheduler)

고정 지연 또는 고정 속도가 사용되는 경우 제어합니다. 자세한 내용은 JDK의 ScheduledExecutorService를 참조하십시오.

true

boolean

45.4. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 3 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.beanstalk.connection-settings-factory

Custom ConnectionSettingsFactory. Beanstalkd에 연결하는 데 사용할 ConnectionSettingsFactory를 지정합니다. 특히 빈stalkd 데몬 없이 유닛 테스트에 유용합니다(차단 연결 설정 가능). 옵션은 org.apache.camel.component.beanstalk.ConnectionSettingsFactory 유형입니다.

 

문자열

camel.component.beanstalk.enabled

빈stalk 구성 요소 활성화

true

부울

camel.component.beanstalk.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

생산자 동작은 수행할 작업을 수행할 수 있음을 나타내는 command 매개 변수의 영향을 받습니다.

소비자는 예약 후 즉시 작업을 삭제하거나 Camel 경로를 처리할 때까지 기다릴 수 있습니다. 첫 번째 시나리오는 "message 대기열"과 유사하지만 두 번째 시나리오는 "작업 대기열"과 유사합니다. 이 동작은 기본적으로 Beanstalkd 특성을 따르는 consumer.awaitJob 매개변수에 의해 제어됩니다. 

동기식일 때 소비자는 작업 완료 시 삭제 되고 실패 시 버퍼 를 호출합니다. URI에 consumer.onFailure 매개변수를 지정하여 실패할 경우 실행할 명령을 선택할 수 있습니다. burydelete 또는 release 값을 사용할 수 있습니다.

부울 매개변수 consumer.useBlockIO 는 JavaBeanstalkClient 라이브러리에서 동일한 매개변수에 해당합니다. 기본값은 true 입니다.

실패한 작업이 즉시 동일한 튜브에서 사용할 수 있으므로 릴리스 를 지정할 때는 소비자가 다시 취득하려고 합니다. jobDelay 를 릴리스 하고 지정할 수 있습니다.

빈stalk 소비자는 스케줄링된 Polling Consumer 이므로 소비자가 폴링해야 하는 빈도와 같이 구성할 수 있는 옵션이 더 많다는 것을 의미합니다. 자세한 내용은 소비자 회의를 참조하십시오.

45.5. 소비자 헤더

소비자는 Exchange 메시지에 여러 작업 헤더를 저장합니다.

Expand
속성유형설명

beanstalk.jobId

long

Job ID

beanstalk.tube

string

이 작업을 포함하는 튜브의 이름

beanstalk.state

string

"ready" 또는 "delayed" 또는 "reserved" 또는 "buried" 또는 "예약"입니다.

beanstalk.priority

long

우선순위 값 설정

beanstalk.age

int

이 작업을 생성한 put 명령의 시간(초)

beanstalk.time-left

int

서버가 이 작업을 준비 대기열에 배치할 때까지 남은 시간(초)

beanstalk.timeouts

int

이 작업이 예약 중 시간 초과된 횟수

beanstalk.releases

int

고객이 예약에서 이 작업을 해제한 횟수

beanstalk.buries

int

이 작업의 수가 묻어졌습니다.

beanstalk.kicks

int

이 작업이 실행된 횟수입니다.

45.6. 예제

이 Camel 구성 요소를 사용하면 처리 작업을 요청하고 Beanstalkd 데몬에 제공할 수 있습니다. 간단한 데모 경로는 다음과 같을 수 있습니다.

from("beanstalk:testTube").
   log("Processing job #${property.beanstalk.jobId} with body ${in.body}").
   process(new Processor() {
     @Override
     public void process(Exchange exchange) {
       // try to make integer value out of body
       exchange.getIn().setBody( Integer.valueOf(exchange.getIn().getBody(classOf[String])) );
     }
   }).
   log("Parsed job #${property.beanstalk.jobId} to body ${in.body}");
Copy to Clipboard Toggle word wrap
from("timer:dig?period=30seconds").
   setBody(constant(10)).log("Kick ${in.body} buried/delayed tasks").
   to("beanstalk:testTube?command=kick");
Copy to Clipboard Toggle word wrap

첫 번째 경로에서 우리는 튜브 "테스트Tube"에서 새로운 작업을 듣고 있습니다. 도착하면 메시지 본문에서 정수 값을 구문 분석하려고 합니다. 성공적으로 완료되면 이를 기록하고 이를 성공적으로 교환하면 Camel 구성 요소가 Beanstalk에서 이 작업을 자동으로 삭제할 수 있습니다. 반대로 작업 데이터를 구문 분석할 수 없는 경우 교환 실패와 Camel 구성 요소가 기본적으로 이를 제거하므로 나중에 처리할 수 있거나 실패한 작업을 수동으로 검사할 수 있습니다. 

따라서 두 번째 경로는 주기적으로 Beanstalk를 요청하여 일반 대기열에서 10  의 작업을 묻거나/또는 지연된 상태로 실행합니다.

 

45.7. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기

46장. 빈 유효성 검사 구성 요소

Camel 버전 2.3에서 사용 가능

Validator 구성 요소는 Java Bean Validation API(JSR 303)를 사용하여 메시지 본문의 빈 유효성 검사를 수행합니다. Camel은 Hibernate Validator 인 참조 구현을 사용합니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-bean-validator</artifactId>
    <version>x.y.z</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

46.1. URI 형식

bean-validator:label[?options]
Copy to Clipboard Toggle word wrap

또는

bean-validator://label[?options]
Copy to Clipboard Toggle word wrap

여기서 레이블 은 끝점을 설명하는 임의의 텍스트 값입니다.
다음 형식 ?option=value&option=value&…​로 URI에 쿼리 옵션을 추가할 수 있습니다.

46.2. URI 옵션

Bean Validator 구성 요소에는 옵션이 없습니다.

Bean Validator 엔드포인트는 URI 구문을 사용하여 구성됩니다.

bean-validator:label
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

46.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

label

필수 Where label는 끝점을 설명하는 임의의 텍스트 값입니다.

 

문자열

46.2.2. 쿼리 매개변수(6 매개변수):

Expand
이름설명기본값유형

constraintValidatorFactory (producer)

사용자 정의 ConstraintValidatorFactory를 사용하려면

 

ConstraintValidator Factory

그룹 (producer)

사용자 정의 검증 그룹 사용

javax.validation.groups.Default

문자열

messageInterpolator (producer)

사용자 지정 MessageInterpolator 사용

 

MessageInterpolator

traversableResolver (producer)

사용자 정의 TraversableResolver 사용

 

TraversableResolver

validationProviderResolver (producer)

사용자 정의 ValidationProviderResolver를 사용하려면

 

ValidationProvider Resolver

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

46.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.bean-validator.enabled

빈-validator 구성 요소 활성화

true

부울

camel.component.bean-validator.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

46.4. OSGi 배포

OSGi 환경에서 Hibernate Validator를 사용하려면 org.apache.camel.component.bean.validator.Hibernate ValidationProviderResolver 와 마찬가지로 전용 ValidationProviderResolver 구현을 사용합니다. 아래 코드 조각은 이 방법을 보여줍니다. Camel 2.13.0부터 HibernateValidationProviderResolver 를 사용할 수 있습니다.

Using HibernateValidationProviderResolver

from("direct:test").
  to("bean-validator://ValidationProviderResolverTest?validationProviderResolver=#myValidationProviderResolver");

...

<bean id="myValidationProviderResolver" class="org.apache.camel.component.bean.validator.HibernateValidationProviderResolver"/>
Copy to Clipboard Toggle word wrap

사용자 정의 ValidationProviderResolver 가 정의되어 있고 검증기 구성 요소가 OSGi 환경에 배포된 경우 HibernateValidationProviderResolver 가 자동으로 사용됩니다.

46.5. 예제

다음 주석이 있는 java 빈이 있다고 가정합니다.

Car.java

public class Car {

    @NotNull
    private String manufacturer;

    @NotNull
    @Size(min = 5, max = 14, groups = OptionalChecks.class)
    private String licensePlate;

    // getter and setter
}
Copy to Clipboard Toggle word wrap

사용자 정의 검증 그룹에 대한 인터페이스 정의

OptionalChecks.java

public interface OptionalChecks {
}
Copy to Clipboard Toggle word wrap

다음 Camel 경로를 사용하면 특성 manufacturer 및 licensePlate에 대한 @Not null 제약 조건만 검증됩니다(Camel은 기본 그룹 javax.validation.groups.Default를 사용합니다).

from("direct:start")
.to("bean-validator://x")
.to("mock:end")
Copy to Clipboard Toggle word wrap

OptionalChecks 그룹의 제약 조건을 확인하려면 다음과 같이 경로를 정의해야 합니다.

from("direct:start")
.to("bean-validator://x?group=OptionalChecks")
.to("mock:end")
Copy to Clipboard Toggle word wrap

두 그룹의 제약 조건을 모두 확인하려면 먼저 새 인터페이스를 정의해야 합니다.

AllChecks.java

@GroupSequence({Default.class, OptionalChecks.class})
public interface AllChecks {
}
Copy to Clipboard Toggle word wrap

경로 정의는 다음과 같아야 합니다.

from("direct:start")
.to("bean-validator://x?group=AllChecks")
.to("mock:end")
Copy to Clipboard Toggle word wrap

그리고 자신의 메시지 보간기, 순회 해결자 및 제약 조건 검증기를 제공해야하는 경우, 다음과 같은 경로를 작성해야 합니다.

<bean id="myMessageInterpolator" class="my.ConstraintValidatorFactory" />
<bean id="myTraversableResolver" class="my.TraversableResolver" />
<bean id="myConstraintValidatorFactory" class="my.ConstraintValidatorFactory" />

from("direct:start")
.to("bean-validator://x?group=AllChecks&messageInterpolator=#myMessageInterpolator
&traversableResolver=#myTraversableResolver&constraintValidatorFactory=#myConstraintValidatorFactory")
.to("mock:end")
Copy to Clipboard Toggle word wrap

또한 제약 조건을 Java 주석이 아닌 XML로 설명할 수도 있습니다. 이 경우 다음과 같이 표시될 수 있는 META-INF/validation.xml 파일을 제공해야 합니다.

validation.xml

<?xml version="1.0" encoding="UTF-8"?>
<validation-config
    xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration">
    <default-provider>org.hibernate.validator.HibernateValidator</default-provider>
    <message-interpolator>org.hibernate.validator.engine.ResourceBundleMessageInterpolator</message-interpolator>
    <traversable-resolver>org.hibernate.validator.engine.resolver.DefaultTraversableResolver</traversable-resolver>
    <constraint-validator-factory>org.hibernate.validator.engine.ConstraintValidatorFactoryImpl</constraint-validator-factory>

    <constraint-mapping>/constraints-car.xml</constraint-mapping>
</validation-config>
Copy to Clipboard Toggle word wrap

constraints-car.xml 파일

constraints-car.xml

<?xml version="1.0" encoding="UTF-8"?>
<constraint-mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd"
    xmlns="http://jboss.org/xml/ns/javax/validation/mapping">
    <default-package>org.apache.camel.component.bean.validator</default-package>

    <bean class="CarWithoutAnnotations" ignore-annotations="true">
        <field name="manufacturer">
            <constraint annotation="javax.validation.constraints.NotNull" />
        </field>

        <field name="licensePlate">
            <constraint annotation="javax.validation.constraints.NotNull" />

            <constraint annotation="javax.validation.constraints.Size">
                <groups>
                    <value>org.apache.camel.component.bean.validator.OptionalChecks</value>
                </groups>
                <element name="min">5</element>
                <element name="max">14</element>
            </constraint>
        </field>
    </bean>
</constraint-mappings>
Copy to Clipboard Toggle word wrap

다음은 OrderedCheckshttps://github.com/apache/camel/blob/master/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/OrderedChecks.java일 수 있는 경로 정의 예의 XML 구문입니다.

본문에는 유효성을 검사할 클래스의 인스턴스가 포함되어야 합니다.

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
        <route>
            <from uri="direct:start"/>
            <to uri="bean-validator://x?group=org.apache.camel.component.bean.validator.OrderedChecks"/>
        </route>
    </camelContext>
</beans>
Copy to Clipboard Toggle word wrap

46.6. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기

47장. 바인딩 구성 요소(더 이상 사용되지 않음)

Camel 버전 2.11로 사용 가능

Camel에서 바인딩 은 데이터 형식, 콘텐츠 항목 또는 검증 단계와 같은 계약에 엔드포인트를 래핑하는 방법입니다. 바인딩은 완전히 선택 사항이며 모든 camel 끝점에서 사용하도록 선택할 수 있습니다.

바인딩은 Camel 및 기타 많은 기술과 같은 다양한 기술에 서비스 계약을 추가하는 SwitchYard 프로젝트 의 작업에 의해 영감을 받습니다. 그러나 SCA에서 Camel을 래핑하는 SwitchYard 접근법 대신 Camel 바인딩 은 Camel 프레임워크 자체 내에서 Camel 엔드포인트를 래핑할 수 있는 방법을 제공합니다. 따라서 Camel 경로 내에서 쉽게 사용할 수 있습니다.

47.1. 옵션

바인딩 구성 요소에는 옵션이 없습니다.

바인딩 끝점은 URI 구문을 사용하여 구성됩니다.

binding:bindingName:delegateUri
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

47.1.1. 경로 매개 변수(2 매개변수):

Expand
이름설명기본값유형

bindingName

Camel 레지스트리에서 조회하는 데 필요한 바인딩 이름입니다.

 

문자열

delegateUri

위임 끝점의 필수 Uri입니다.

 

문자열

47.1.2. 쿼리 매개변수 (4 매개변수):

Expand
이름설명기본값유형

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN/ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션이 사용되지 않습니다. 기본적으로 소비자는 WARN/ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

Exchange를 만들 때 기본 교환 패턴을 설정합니다.

 

ExchangePattern

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

47.2. 바인딩 사용

바인딩은 현재 계약을 정의하는 빈입니다( Camel DSL에 바인딩 추가).

바인딩된 엔드포인트를 정의하는 방법은 몇 가지 있습니다(예: Binding으로 바인딩된 끝점).

47.3. 바인딩 URI 사용

끝점 URI 앞에 binding:nameOfBinding: 을 접두사로 지정할 수 있습니다. 여기서 nameOfBinding 은 레지스트리의 Binding 빈 이름입니다.

from("binding:jaxb:activemq:myQueue").to("binding:jaxb:activemq:anotherQueue")
Copy to Clipboard Toggle word wrap

여기서는 예를 들어 JAXB 데이터 형식을 사용하여 마샬링 및 해상 메시지를 마샬링할 수 있는 "jaxb" 바인딩을 사용하고 있습니다.

47.4. BindingComponent 사용

일부 바인딩에 이미 바인딩된 끝점을 만들 수 있는 종속성 주입을 통해 레지스트리에 구성할 수 있는 BindingComponent라는 구성 요소가 있습니다.There is a Component called BindingComponent which can be configured in your Registry by dependency injection which allows the creation of endpoints which are already bound to some binding.

예를 들어 다음과 같은 코드를 사용하여 레지스트리에 "jsonmq"라는 새 구성 요소를 등록한 경우

JacksonDataFormat format = new JacksonDataFormat(MyBean.class);
context.bind("jsonmq", new BindingComponent(new DataFormatBinding(format), "activemq:foo."));
Copy to Clipboard Toggle word wrap

그러면 끝점을 다른 끝점처럼 사용할 수 있습니다.

from("jsonmq:myQueue").to("jsonmq:anotherQueue")
Copy to Clipboard Toggle word wrap

큐us "foo.myQueue" 및 "foo.anotherQueue"를 사용하고 지정된 Jackson 데이터 형식을 대기열에서 마샬링하는 데 사용합니다.

47.5. 바인딩 사용 시기

단일 경로에서 엔드 포인트만 사용하는 경우; 바인딩은 'raw' 엔드포인트를 직접 사용하고 camel 경로에서 명시적 마샬링 및 유효성 검사를 정상적으로 사용하는 것보다 더 복잡하고 더 복잡 할 수 있습니다.

그러나 바인딩을 사용하면 여러 경로를 함께 구성하거나 단일 경로를 입력 및 출력 끝점으로 구성된 'template'로 사용하는 경우 도움이 될 수 있습니다. 그러면 바인딩에서 계약 및 끝점을 래핑할 수 있는 좋은 방법을 제공합니다.

바인딩에 대한 또 다른 좋은 사용 사례는 동일한 바인딩을 사용하는 많은 끝점을 사용하는 경우입니다. 항상 특정 데이터 형식 또는 유효성 검사 규칙을 언급하지 않고 BindingComponent를 사용하여 선택한 바인딩에 끝점을 래핑할 수 있습니다.

따라서 바인딩은 구성 도구이며, 의미가 있을 때만 사용합니다. 경로 또는 끝점이 많지 않은 경우 추가 복잡성은 가치가 없을 수 있습니다.

48장. Bindy DataFormat

Camel 버전 2.0에서 사용 가능

이 구성 요소의 목표는 비구조화된 데이터의 구문 분석/바인딩(또는 보다 정확한 비 XML 데이터)
~/from Java Beans that have binding mappings defined with annotations. Bindy를 사용하면 다음과 같은 소스의 데이터를 바인딩할 수 있습니다.

  • CSV 레코드
  • 고정 길이 레코드,
  • FIX 메시지,
  • 또는 거의 비정형되지 않은 데이터

POJO(Plain Old Java Object) 중 하나 이상 Bindy는 java 속성의 유형에 따라 데이터를 변환합니다. POJO는 일부 경우에 사용 가능한 일대다 관계와 함께 연결할 수 있습니다. 또한 Date, Double, Float, Integer, Short, Long and BigDecimal와 같은 데이터 형식의 경우 속성을 포맷하는 동안 적용할 패턴을 제공할 수 있습니다.

BigDecimal 숫자의 경우 전체 자릿수와 소수 또는 그룹화 구분 기호도 정의할 수 있습니다.For the Big decimal numbers, you can also define the precision and the decimal or grouping separators.

Expand
유형형식 유형패턴 예link

날짜

DateFormat

dd-MM-yyyy

http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html

decimal*

Decimalformat

..##

http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html

decimal* = Double, Integer, Float, Short, Long

*Format supported*
Copy to Clipboard Toggle word wrap

이 첫 번째 릴리스에서는 쉼표로 구분된 값 필드와 키 값 쌍 필드(예: FIX 메시지)만 지원합니다.

comel-bindy를 사용하려면 먼저 패키지(예: com.acme.model)에서 모델을 정의하고 각 모델 클래스(예: Order, Client, Instrument, …​)에 필요한 주석을 클래스 또는 필드에 추가해야 합니다.

*Multiple models*
Copy to Clipboard Toggle word wrap

여러 모델을 사용하는 경우 예측할 수 없는 결과를 방지하기 위해 각 모델을 자체 패키지에 배치해야 합니다.

Camel 2.16 이후부터는 이제 패키지 이름 대신 클래스 이름을 사용하여 bindy를 구성할 때 동일한 패키지에 여러 모델을 안전하게 가질 수 있으므로 더 이상 이러한 문제가 발생하지 않습니다.

48.1. 옵션

Bindy dataformat은 아래에 나열된 5 가지 옵션을 지원합니다.

Expand
이름기본값Java Type설명

type

 

BindyType

csv 사용 여부, 고정 또는 키 값 쌍 모드입니다. 기본값은 선택한 데이터 형식에 따라 Csv 또는 KeyValue입니다.

classType

 

문자열

사용할 모델 클래스의 이름입니다.

locale

 

문자열

단위 상태를 위해 us와 같이 사용할 기본 로케일을 구성하려면 다음을 수행합니다. JVM 플랫폼 기본 로케일을 사용하려면 이름 기본값을 사용합니다.

unwrapSingleInstance

true

부울

unmarshalling이 단일 인스턴스를 래핑하지 않고 java.util.List로 래핑하지 않아야 할 때.

contentTypeHeader

false

부울

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

48.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 18 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.dataformat.bindy-csv.class-type

사용할 모델 클래스의 이름입니다.

 

문자열

camel.dataformat.bindy-csv.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.bindy-csv.enabled

bindy-csv 데이터 형식 활성화

true

부울

camel.dataformat.bindy-csv.locale

단위 상태를 위해 us와 같이 사용할 기본 로케일을 구성하려면 다음을 수행합니다. JVM 플랫폼 기본 로케일을 사용하려면 이름 기본값을 사용합니다.

 

문자열

camel.dataformat.bindy-csv.type

csv 사용 여부, 고정 또는 키 값 쌍 모드입니다.

 

BindyType

camel.dataformat.bindy-csv.unwrap-single-instance

unmarshalling이 단일 인스턴스를 래핑하지 않고 java.util.List로 래핑하지 않아야 할 때.

true

부울

camel.dataformat.bindy-fixed.class-type

사용할 모델 클래스의 이름입니다.

 

문자열

camel.dataformat.bindy-fixed.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.bindy-fixed.enabled

bindy-fixed dataformat 활성화

true

부울

camel.dataformat.bindy-fixed.locale

단위 상태를 위해 us와 같이 사용할 기본 로케일을 구성하려면 다음을 수행합니다. JVM 플랫폼 기본 로케일을 사용하려면 이름 기본값을 사용합니다.

 

문자열

camel.dataformat.bindy-fixed.type

csv 사용 여부, 고정 또는 키 값 쌍 모드입니다.

 

BindyType

camel.dataformat.bindy-fixed.unwrap-single-instance

unmarshalling이 단일 인스턴스를 래핑하지 않고 java.util.List로 래핑하지 않아야 할 때.

true

부울

camel.dataformat.bindy-kvp.class-type

사용할 모델 클래스의 이름입니다.

 

문자열

camel.dataformat.bindy-kvp.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.bindy-kvp.enabled

bindy-kvp 데이터 형식 활성화

true

부울

camel.dataformat.bindy-kvp.locale

단위 상태를 위해 us와 같이 사용할 기본 로케일을 구성하려면 다음을 수행합니다. JVM 플랫폼 기본 로케일을 사용하려면 이름 기본값을 사용합니다.

 

문자열

camel.dataformat.bindy-kvp.type

csv 사용 여부, 고정 또는 키 값 쌍 모드입니다.

 

BindyType

camel.dataformat.bindy-kvp.unwrap-single-instance

unmarshalling이 단일 인스턴스를 래핑하지 않고 java.util.List로 래핑하지 않아야 할 때.

true

부울

ND

48.3. 주석

생성된 주석은 모델의 다른 개념을 다음과 같이 POJO에 매핑할 수 있습니다.

  • 레코드 유형(csv, 키 값 쌍(예: FIX 메시지), 고정 길이 …​
  • link (다른 오브젝트의 객체 연결)
  • DataField 및 해당 속성(int, type, …​
  • KeyValuePairField (예: FIX 재무 메시지와 같은 key = 값 형식)
  • 섹션(헤더, 본문 및 바닥글 섹션을 식별하는)
  • OneToMany,
  • BindyConverter (since 2.18.0)
  • FormatFactories (since 2.18.0)

이 섹션에서는 다음에 대해 설명합니다.

48.4. 1. CsvRecord

CsvRecord 주석은 모델의 루트 클래스를 식별하는 데 사용됩니다. 이는 레코드 = CSV 파일의 줄이며 여러 자식 모델 클래스에 연결할 수 있습니다.

Expand
주석 이름레코드 유형level

CsvRecord

csv

class

Expand
매개변수 이름type정보

separator

string

필수 - ',' 또는 ';' 또는 ' anything'일 수 있습니다. 지원되는 유일한 공백 문자는 탭(\t)입니다. 다른 공백 문자(공백)는 지원되지 않습니다. 이 값은 정규식으로 해석됩니다. 정규식에서 특별한 의미가 있는 기호(예: '|' 기호)를 사용하려면 "|'와 같이 마스킹해야 하는 것보다"|' 기호입니다.

skipFirstLine

boolean

선택 사항 - default value = false - CSV 파일의 첫 번째 줄을 건너뛸 수 있습니다.

crlf

string

선택 사항 - 가능한 값 = WINDOWS,UNIX,MAC 또는 custom; 기본값. WINDOWS - 사용할 캐리지 반환 문자를 정의할 수 있습니다. 앞에 나열된 세 개 이외의 값을 지정하면 입력하는 값 (custom)이 CRLF 문자로 사용됩니다.

generateHeaderColumns

boolean

선택 사항 - default value = false - 는 CSV의 헤더 열을 생성하는 데 사용합니다.

autospanLine

boolean

Camel 2.13/2.12.2: 선택 사항 - 기본값 = false - 이 옵션을 사용하면 마지막 열이 행 끝으로 자동 확장됩니다(예: 주석 처리한 경우 행도 모든 문자, 구분 기호 문자).

isOrdered

boolean

선택 사항 - default value = false - CSV가 생성될 때 필드의 순서를 변경할 수 있습니다.

quote

문자열

Camel 2.8.3/2.9: 옵션을 사용하면 CSV가 생성될 때 필드의 인용 문자를 지정할 수 있습니다. 이 주석은 모델의 루트 클래스에 연결되며 한 번만 선언해야 합니다.

quoting

boolean

*Camel 2.11:*optional - default value = false - CSV 마샬링 시 값(및 헤더)을 인용해야 함을 나타냅니다.

endWithLineBreak

boolean

Camel 2.21: 선택 사항 - 기본값 = true - CSV 생성 파일이 줄 바꿈으로 끝나야 하는지 나타냅니다.

case 1 : separator = ','

CSV 레코드에서 필드를 분리하는 데 사용되는 구분 기호는 ','입니다.

10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500,
USD,08-01-2009
Copy to Clipboard Toggle word wrap
@CsvRecord( separator = "," )
public Class Order {

}
Copy to Clipboard Toggle word wrap

case 2 : separator = ';'

이전 사례와 비교하여 여기에 구분 기호는 ';' 대신 ','입니다.

10; J; Pauline; M; XD12345678; Fortis Dynamic 15/15; 2500, USD, 08-01-2009

@CsvRecord( separator = ";" )
public Class Order {

}
Copy to Clipboard Toggle word wrap

case 3 : separator = '|'

이전 사례와 비교하여 여기서 구분 기호는 '|' 대신 ';'입니다.

10| J| Pauline| M| XD12345678| Fortis Dynamic 15/15| 2500| USD|
08-01-2009
Copy to Clipboard Toggle word wrap
@CsvRecord( separator = "\\|" )
public Class Order {

}
Copy to Clipboard Toggle word wrap

case 4 : separator = '\",\"'

Camel 2.8.2 또는 이전 버전에 적용

CSV 레코드를 구문 분석할 필드에 구분 기호로도 구분 기호로 사용되는 ',' 또는 ';'가 포함된 필드에 다른 전략
을 찾아 이 사례를 처리하는 방법을 camel bindy를 알립니다. 데이터가 쉼표로 포함된 필드를 정의하려면 simple 또는 double quotes
를 구분 기호(예: '10', 'Street 10, NY', 'USA' 또는 "10", "Street 10, NY", "USA")로 사용합니다.
Remark: 이 경우 단순 또는 큰따옴표인 줄의 첫 번째 문자와 마지막 문자가 bindy로 제거됩니다.

"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15"
2500","USD","08-01-2009"
Copy to Clipboard Toggle word wrap
@CsvRecord( separator = "\",\"" )
public Class Order {

}
Copy to Clipboard Toggle word wrap

Camel 2.8.3/2.9 또는 bindy를 사용하면 레코드를 작은따 옴표 또는 큰따옴표로 묶고 CSV에서 오브젝트로 나눌 때 이러한 따옴표를 자동으로 제거합니다. 따라서 구분 기호에 따옴표를 포함하지 말고 다음과 같이 간단히 수행합니다.

"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15"
2500","USD","08-01-2009"
Copy to Clipboard Toggle word wrap
@CsvRecord( separator = "," )
public Class Order {

}
Copy to Clipboard Toggle word wrap

If you want to marshal from Object to CSV and use quotes, then you need to specify which quote character to use, using the quote attribute on the @CsvRecord:

@CsvRecord( separator = ",", quote = "\"" )
public Class Order {

}
Copy to Clipboard Toggle word wrap

케이스 5: separator & skipfirstline

이 기능은 클라이언트가 파일의 첫 번째 줄에, 데이터 필드의 이름을 보유하려는 경우에 유용합니다.

주문 ID, 클라이언트 ID, 이름, 성, isin 코드, 계측 이름, 수량, 통화, 날짜

구문 분석 프로세스 중에 이 첫 번째 줄을 건너뛰어야 함을 알리기 위해 특성을 사용합니다.

@CsvRecord(separator = ",", skipFirstLine = true)
public Class Order {

}
Copy to Clipboard Toggle word wrap

case 6 : generateHeaderColumns

생성된 CSV의 첫 번째 줄에 추가하려면 다음과 같이 주석에서 generateHeaderColumns를 true로 설정해야 합니다.

@CsvRecord( generateHeaderColumns = true )
public Class Order {

}
Copy to Clipboard Toggle word wrap

결과적으로marshaling 프로세스 중에 Bindy가 다음과 같이 CSV를 생성합니다.

주문 ID, 클라이언트 ID, 이름, 성, isin 코드, 계측 이름, 수량, 통화, 날짜

10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500, USD,08-01-2009
Copy to Clipboard Toggle word wrap

케이스 7: 캐리지 리턴

comel-bindy가 실행되는 플랫폼이 Windows가 아닌 Macintosh 또는 Unix가 아닌 경우 다음과 같이 crlf 속성을 변경할 수 있습니다. 세 가지 값 사용 가능: WINDOWS, UNIX 또는 MAC

@CsvRecord(separator = ",", crlf="MAC")
public Class Order {

}
Copy to Clipboard Toggle word wrap

또한 어떤 이유로든 다른 줄 끝 문자를 추가해야 하는 경우 crlf 매개 변수를 사용하여 지정할 수 있습니다. 다음 예제에서는 줄을 쉼표와 줄 바꿈 문자로 끝낼 수 있습니다.In the following example, we can end the line with a comma followed by the newline character:

@CsvRecord(separator = ",", crlf=",\n")
public Class Order {

}
Copy to Clipboard Toggle word wrap

case 8 : isOrdered

경우에 따라 모델에서 CSV 레코드를 생성하는 동안 따라야 하는 순서는 구문 분석 중에 사용된 순서와 다릅니다. 그런 다음, 이 경우, isOrdered = true 속성을 사용하여 DataField 주석의 'position' 속성과 함께 이를 나타낼 수 있습니다.

@CsvRecord(isOrdered = true)
public Class Order {

   @DataField(pos = 1, position = 11)
   private int orderNr;

   @DataField(pos = 2, position = 10)
   private String clientNr;

}
Copy to Clipboard Toggle word wrap

pos는 CSV를 생성하는 데 사용되는 동안 파일을 구문 분석하는 데 사용됩니다.

48.6. 3. DataField

DataField 주석은 필드의 속성을 정의합니다. 각 datafield는 레코드의 위치, 유형(string, int, date, …​) 및 선택적으로 패턴으로 식별됩니다.

Expand
주석 이름레코드 유형level

DataField

all

속성

Expand
매개변수 이름type정보

POS

int

필수 - 필드의 입력 위치. 1에서 …​ 사이의 숫자 번호 - 위치 매개 변수를 참조하십시오.

패턴

string

선택 사항 - 기본값 = "" - 은 Decimal, Date를 포맷하는 데 사용됩니다.

길이

int

선택 사항 - 고정 길이 형식의 필드 길이를 나타냅니다. optional - represents the length of the field for fixed length format.

Precision

int

선택 사항 - Decimal 숫자를 포맷/분석할 때 사용할 전체 자릿수를 나타냅니다. optional - represents the precision to be used when the Decimal number will be formatted/parsed.

패턴

string

선택 사항 - default value = "" - Java formatter(예:SimpleDateFormat by example)에서 포맷/유효 데이터를 포맷하는 데 사용됩니다. 패턴을 사용하는 경우 bindy 데이터 형식에 로케일을 설정하는 것이 좋습니다. "us"와 같은 알려진 로케일로 설정하거나 플랫폼 기본 로케일을 사용하려면 "default"를 사용합니다. "default"에는 Camel 2.14/2.13.3/2.12.5가 필요합니다.

위치

int

선택 사항 - CSV 생성(출력 메시지)의 필드 위치가 입력 위치와 비교해야 하는 경우 사용해야 합니다. pos 매개변수를 참조하십시오.

필수 항목

boolean

optional - default value = "false"

trim

boolean

optional - default value = "false"

defaultValue

string

Camel 2.10: 선택 사항 - 기본값 = "" - 각 CSV 필드가 비어 있을 때 필드의 기본값을 정의합니다.

impliedDecimalSeparator

boolean

Camel 2.11: 선택 사항 - 기본값 = "false" - 지정된 위치에 임차된 소수점이 있는지 여부를 나타냅니다.

lengthPos

int

Camel 2.11: 선택 사항 - 이 필드에 대한 고정 길이를 정의하는 고정 길이 레코드의 데이터 필드를 식별하는 데 사용할 수 있습니다.

align

string

선택 사항 - 기본값 = "R" - 텍스트를 고정 길이 필드의 오른쪽에서 왼쪽으로 정렬합니다. 값 'R' 또는 'L' 사용

구분 기호

string

Camel 2.11: 선택 사항 - 고정 길이 레코드에서 변수 길이 필드의 끝을 구분하는 데 사용할 수 있습니다.

케이스 1 : pos

이 매개변수/attribute는 csv 레코드에서 필드의 위치를 나타냅니다.

위치

@CsvRecord(separator = ",")
public class Order {

    @DataField(pos = 1)
    private int orderNr;

    @DataField(pos = 5)
    private String isinCode;

}
Copy to Clipboard Toggle word wrap

이 예제에서 볼 수 있듯이 위치는 '1'에서 시작하지만 클래스 순서의 '5'에서 계속됩니다. '2'에서 '4'까지의 숫자는 클래스 클라이언트에 정의됩니다(아래 참조).

position은 다른 모델 클래스에서 계속됩니다.

public class Client {

    @DataField(pos = 2)
    private String clientNr;

    @DataField(pos = 3)
    private String firstName;

    @DataField(pos = 4)
    private String lastName;
}
Copy to Clipboard Toggle word wrap

케이스 2 : 패턴

패턴을 통해 데이터 형식을 보강하거나 검증할 수 있습니다.

패턴

@CsvRecord(separator = ",")
public class Order {

    @DataField(pos = 1)
    private int orderNr;

    @DataField(pos = 5)
    private String isinCode;

    @DataField(name = "Name", pos = 6)
    private String instrumentName;

    @DataField(pos = 7, precision = 2)
    private BigDecimal amount;

    @DataField(pos = 8)
    private String currency;

    // pattern used during parsing or when the date is created
    @DataField(pos = 9, pattern = "dd-MM-yyyy")
    private Date orderDate;
}
Copy to Clipboard Toggle word wrap

케이스 3: precision

전체 자릿수는 숫자의 10진수 부분을 정의하려는 경우에 유용합니다.The precision is helpful when you want to define the decimal part of your number.

Precision

@CsvRecord(separator = ",")
public class Order {

    @DataField(pos = 1)
    private int orderNr;

    @Link
    private Client client;

    @DataField(pos = 5)
    private String isinCode;

    @DataField(name = "Name", pos = 6)
    private String instrumentName;

    @DataField(pos = 7, precision = 2)
    private BigDecimal amount;

    @DataField(pos = 8)
    private String currency;

    @DataField(pos = 9, pattern = "dd-MM-yyyy")
    private Date orderDate;
}
Copy to Clipboard Toggle word wrap

케이스 4: Position은 출력에서 다릅니다.

position 속성은 생성된 CSV 레코드에 필드를 배치하는 방법을 bindy에 알립니다. 기본적으로 사용되는 위치는 'pos' 속성으로 정의된 위치에 해당합니다. 위치가 다르면 (즉, '지정'을 사용하여 이를 나타내는 데 사용할 수 있는 것 보다 천문적 프로세스가 마샬링에서 마샬링되는 것을 비교할 수 있습니다.

예를 들면 다음과 같습니다.

위치가 출력에 따라 다릅니다.

@CsvRecord(separator = ",", isOrdered = true)
public class Order {

    // Positions of the fields start from 1 and not from 0

    @DataField(pos = 1, position = 11)
    private int orderNr;

    @DataField(pos = 2, position = 10)
    private String clientNr;

    @DataField(pos = 3, position = 9)
    private String firstName;

    @DataField(pos = 4, position = 8)
    private String lastName;

    @DataField(pos = 5, position = 7)
    private String instrumentCode;

    @DataField(pos = 6, position = 6)
    private String instrumentNumber;
}
Copy to Clipboard Toggle word wrap

주석 @DataField의 이 속성은 @CsvRecord의 attribute isOrdered = true와 함께 사용해야 합니다.

케이스 5 : 필수

필드가 필수인 경우 'required' 특성을 true로만 사용하십시오.

필수 항목

@CsvRecord(separator = ",")
public class Order {

    @DataField(pos = 1)
    private int orderNr;

    @DataField(pos = 2, required = true)
    private String clientNr;

    @DataField(pos = 3, required = true)
    private String firstName;

    @DataField(pos = 4, required = true)
    private String lastName;
}
Copy to Clipboard Toggle word wrap

이 필드가 레코드에 없으면 다음 정보를 사용하여 구문 분석기에서 오류보다 발생합니다.If this field is not present in the record, than an error will be raised by the parser with the following information:

일부 필드는 누락(선택 사항 또는 필수) 라인입니다.

case 6 : trim

필드에 처리 전에 제거해야 하는 선행 및/또는 후행 공백이 있는 경우 true로 설정된 'trim' 특성을 사용합니다.

Trim

@CsvRecord(separator = ",")
public class Order {

    @DataField(pos = 1, trim = true)
    private int orderNr;

    @DataField(pos = 2, trim = true)
    private Integer clientNr;

    @DataField(pos = 3, required = true)
    private String firstName;

    @DataField(pos = 4)
    private String lastName;
}
Copy to Clipboard Toggle word wrap

case 7 : defaultValue

필드가 정의되지 않은 경우 defaultValue 특성으로 표시된 값을 사용합니다.

기본값

@CsvRecord(separator = ",")
public class Order {

    @DataField(pos = 1)
    private int orderNr;

    @DataField(pos = 2)
    private Integer clientNr;

    @DataField(pos = 3, required = true)
    private String firstName;

    @DataField(pos = 4, defaultValue = "Barin")
    private String lastName;
}
Copy to Clipboard Toggle word wrap

이 속성은 선택적 필드에만 적용할 수 있습니다.

48.7. 4. FixedLengthRecord

FixedLengthRecord 주석은 모델의 루트 클래스를 식별하는 데 사용됩니다. 레코드 = 데이터 고정 길이 형식이 포함된 파일/메시지 선을 나타내며 여러 자식 모델 클래스에 연결할 수 있습니다. 이 형식은 필드를 약간 구체적으로 사용하여 오른쪽 또는 왼쪽에 맞을 수 있습니다.
데이터 크기가 필드 길이를 완전히 채우지 않으면 '추가' 문자를 추가할 수 있습니다.

Expand
주석 이름레코드 유형level

FixedLengthRecord

fixed

class

Expand
매개변수 이름type정보

crlf

string

선택 사항 - 가능한 값 = WINDOWS,UNIX,MAC 또는 custom; 기본값. WINDOWS - 사용할 캐리지 반환 문자를 정의할 수 있습니다. 앞에 나열된 세 개 이외의 값을 지정하면 입력하는 값(custom)이 CRLF 문자로 사용됩니다. 이 옵션은 마샬링 중에만 사용되는 반면, unmarshalling은 eol을 사용자 지정하지 않는 한 시스템 기본 JDK 제공 줄 구분 기호를 사용합니다.

EOL

string

선택 사항 - 비어 있는 문자열인 default=""입니다. 각 레코드 후 행 종료를 처리하는 데 사용할 문자입니다(다른 줄 구분 기호가 제공되지 않는 한 기본 JDK 제공 구분 기호를 사용하는 경우 기본 JDK에서 줄 구분 기호를 사용하는 데 도움이 되는 - default = ""). 이 옵션은 unmarshalling 중에만 사용됩니다. 여기서 마샬링은 다른 값을 제공하지 않는 한 "WINDOWS"로 시스템 기본 제공된 줄 구분 기호를 사용합니다.

paddingChar

char

mandatory - default value = ' '

길이

int

mandatory = 고정 길이 레코드의 크기

hasHeader

boolean

Camel 2.11 - 선택 사항 - 이 유형의 레코드 앞에 파일 / 스트림의 시작 부분에 단일 헤더 레코드가 있을 수 있음을 나타냅니다.

hasFooter

boolean

Camel 2.11 - 선택 사항 - 이 유형의 레코드 뒤에 파일 / 스트림 끝에 있는 단일 바닥글 레코드가 있음을 나타냅니다.

skipHeader

boolean

Camel 2.11 - 선택 사항 - 헤더 레코드의 마샬링/마이크아웃을 건너뛰도록 데이터 형식을 구성합니다. 기본 레코드(예: 헤더 또는 바닥글 아님)에서 이 매개변수를 구성합니다.

skipFooter

boolean

Camel 2.11 - 선택 사항 - 바닥글 레코드 마샬링/마이크아웃을 건너뛰도록 데이터 형식을 구성하여 기본 레코드(예: 헤더 또는 발기가 아님)에서 이 매개 변수를 구성합니다.

isHeader

boolean

Camel 2.11 - 선택 사항 - 이 FixedLengthRecord를 헤더 레코드로 식별합니다.

isFooter

boolean

Camel 2.11 - 선택 사항 - 이 FixedLengthRecords를 바닥글 레코드로 식별합니다.

ignoreTrailingChars

boolean

Camel 2.11.1 - 선택 사항 - 마지막 매핑된 파일 이외의 문자를 / 구문 분석하지 않을 때 무시할 수 있음을 나타냅니다. 이 주석은 모델의 루트 클래스에 연결되며 한 번만 선언해야 합니다.

hasHeader/hasFooter 매개변수는 isHeader/isFooter와 함께 함께 사용할 수 없습니다. 레코드는 헤더/footer 및 기본 고정 길이 레코드가 아닐 수 있습니다.

케이스 1 : 간단한 고정 길이 레코드

이 간단한 예제에서는 고정 메시지를 구문 분석 / 포맷하도록 모델을 설계하는 방법을 보여줍니다.

10A9PaulineMISINXD12345678BUYShare2500.45USD01-08-2009
Copy to Clipboard Toggle word wrap

fixed-simple

@FixedLengthRecord(length=54, paddingChar=' ')
public static class Order {

    @DataField(pos = 1, length=2)
    private int orderNr;

    @DataField(pos = 3, length=2)
    private String clientNr;

    @DataField(pos = 5, length=7)
    private String firstName;

    @DataField(pos = 12, length=1, align="L")
    private String lastName;

    @DataField(pos = 13, length=4)
    private String instrumentCode;

    @DataField(pos = 17, length=10)
    private String instrumentNumber;

    @DataField(pos = 27, length=3)
    private String orderType;

    @DataField(pos = 30, length=5)
    private String instrumentType;

    @DataField(pos = 35, precision = 2, length=7)
    private BigDecimal amount;

    @DataField(pos = 42, length=3)
    private String currency;

    @DataField(pos = 45, length=10, pattern = "dd-MM-yyyy")
    private Date orderDate;
}
Copy to Clipboard Toggle word wrap

케이스 2 : 정렬 및 패딩을 사용한 길이 레코드 수정

이 더 정교한 예제에서는 필드에 대한 정렬을 정의하는 방법과 '여기'인 패딩 문자를 할당하는 방법을 보여줍니다.

10A9 PaulineM ISINXD12345678BUYShare2500.45USD01-08-2009
Copy to Clipboard Toggle word wrap

fixed-padding-align

@FixedLengthRecord(length=60, paddingChar=' ')
public static class Order {

    @DataField(pos = 1, length=2)
    private int orderNr;

    @DataField(pos = 3, length=2)
    private String clientNr;

    @DataField(pos = 5, length=9)
    private String firstName;

    @DataField(pos = 14, length=5, align="L")   // align text to the LEFT zone of the block
    private String lastName;

    @DataField(pos = 19, length=4)
    private String instrumentCode;

    @DataField(pos = 23, length=10)
    private String instrumentNumber;

    @DataField(pos = 33, length=3)
    private String orderType;

    @DataField(pos = 36, length=5)
    private String instrumentType;

    @DataField(pos = 41, precision = 2, length=7)
    private BigDecimal amount;

    @DataField(pos = 48, length=3)
    private String currency;

    @DataField(pos = 51, length=10, pattern = "dd-MM-yyyy")
    private Date orderDate;
}
Copy to Clipboard Toggle word wrap

케이스 3: 필드 패딩

경우에 따라 레코드용으로 정의된 기본 패딩은 '' 대신 '0'으로 패딩하려는 숫자 형식이 있으므로 필드에 적용할 수 없습니다. 이 경우 모델에서 paddingField 특성을 사용하여 이 값을 설정할 수 있습니다.

10A9 PaulineM ISINXD12345678BUYShare000002500.45USD01-08-2009
Copy to Clipboard Toggle word wrap

fixed-padding-field

@FixedLengthRecord(length = 65, paddingChar = ' ')
public static class Order {

    @DataField(pos = 1, length = 2)
    private int orderNr;

    @DataField(pos = 3, length = 2)
    private String clientNr;

    @DataField(pos = 5, length = 9)
    private String firstName;

    @DataField(pos = 14, length = 5, align = "L")
    private String lastName;

    @DataField(pos = 19, length = 4)
    private String instrumentCode;

    @DataField(pos = 23, length = 10)
    private String instrumentNumber;

    @DataField(pos = 33, length = 3)
    private String orderType;

    @DataField(pos = 36, length = 5)
    private String instrumentType;

    @DataField(pos = 41, precision = 2, length = 12, paddingChar = '0')
    private BigDecimal amount;

    @DataField(pos = 53, length = 3)
    private String currency;

    @DataField(pos = 56, length = 10, pattern = "dd-MM-yyyy")
    private Date orderDate;
}
Copy to Clipboard Toggle word wrap

케이스 4: 구분 기호를 사용하여 고정 길이 레코드

고정 길이 레코드에는 종종 레코드 내에 구분된 콘텐츠가 있는 경우가 있습니다. firstName 및 lastName 필드는 다음 예제에서 '^' 문자로 구분됩니다.

10A9Pauline^M^ISINXD12345678BUYShare000002500.45USD01-08-2009
Copy to Clipboard Toggle word wrap

고정됨

@FixedLengthRecord()
public static class Order {

    @DataField(pos = 1, length = 2)
    private int orderNr;

    @DataField(pos = 2, length = 2)
    private String clientNr;

    @DataField(pos = 3, delimiter = "^")
    private String firstName;

    @DataField(pos = 4, delimiter = "^")
    private String lastName;

    @DataField(pos = 5, length = 4)
    private String instrumentCode;

    @DataField(pos = 6, length = 10)
    private String instrumentNumber;

    @DataField(pos = 7, length = 3)
    private String orderType;

    @DataField(pos = 8, length = 5)
    private String instrumentType;

    @DataField(pos = 9, precision = 2, length = 12, paddingChar = '0')
    private BigDecimal amount;

    @DataField(pos = 10, length = 3)
    private String currency;

    @DataField(pos = 11, length = 10, pattern = "dd-MM-yyyy")
    private Date orderDate;
}
Copy to Clipboard Toggle word wrap

Camel 2.11 부터 고정 길이 레코드의 'pos' 값은 정확한 열 번호 대신 순차적 값을 사용하여 선택적으로 정의할 수 있습니다.

case 5 : 레코드 정의 필드 길이를 사용한 고정 길이 레코드

고정 길이 레코드에는 동일한 레코드 내의 다른 필드의 예상 길이를 정의하는 필드가 포함될 수 있습니다. 다음 예에서 instrumentNumber 필드 값의 길이는 레코드의 instrumentNumberLen 필드 값으로 정의됩니다.

10A9Pauline^M^ISIN10XD12345678BUYShare000002500.45USD01-08-2009
Copy to Clipboard Toggle word wrap

고정됨

@FixedLengthRecord()
public static class Order {

    @DataField(pos = 1, length = 2)
    private int orderNr;

    @DataField(pos = 2, length = 2)
    private String clientNr;

    @DataField(pos = 3, delimiter = "^")
    private String firstName;

    @DataField(pos = 4, delimiter = "^")
    private String lastName;

    @DataField(pos = 5, length = 4)
    private String instrumentCode;

    @DataField(pos = 6, length = 2, align = "R", paddingChar = '0')
    private int instrumentNumberLen;

    @DataField(pos = 7, lengthPos=6)
    private String instrumentNumber;

    @DataField(pos = 8, length = 3)
    private String orderType;

    @DataField(pos = 9, length = 5)
    private String instrumentType;

    @DataField(pos = 10, precision = 2, length = 12, paddingChar = '0')
    private BigDecimal amount;

    @DataField(pos = 11, length = 3)
    private String currency;

    @DataField(pos = 12, length = 10, pattern = "dd-MM-yyyy")
    private Date orderDate;
}
Copy to Clipboard Toggle word wrap

케이스 6 : 헤더 및 바닥글을 사용한 길이 레코드 수정

Bindy는 모델의 일부로 구성된 고정 길이 헤더 및 바닥글 레코드를 검색합니다. - 주석 처리된 클래스가 기본 @FixedLengthRecord 클래스와 동일한 패키지에 있거나 구성된 검사 패키지 중 하나에 존재하는 경우 제공됩니다. 다음 텍스트는 헤더 레코드 및 바닥글 레코드로 묶인 두 개의 고정 길이 레코드를 보여줍니다.

101-08-2009
10A9 PaulineM ISINXD12345678BUYShare000002500.45USD01-08-2009
10A9 RichN ISINXD12345678BUYShare000002700.45USD01-08-2009
9000000002
Copy to Clipboard Toggle word wrap

Fixed-header-and-footer-main-class

@FixedLengthRecord(hasHeader = true, hasFooter = true)
public class Order {

    @DataField(pos = 1, length = 2)
    private int orderNr;

    @DataField(pos = 2, length = 2)
    private String clientNr;

    @DataField(pos = 3, length = 9)
    private String firstName;

    @DataField(pos = 4, length = 5, align = "L")
    private String lastName;

    @DataField(pos = 5, length = 4)
    private String instrumentCode;

    @DataField(pos = 6, length = 10)
    private String instrumentNumber;

    @DataField(pos = 7, length = 3)
    private String orderType;

    @DataField(pos = 8, length = 5)
    private String instrumentType;

    @DataField(pos = 9, precision = 2, length = 12, paddingChar = '0')
    private BigDecimal amount;

    @DataField(pos = 10, length = 3)
    private String currency;

    @DataField(pos = 11, length = 10, pattern = "dd-MM-yyyy")
    private Date orderDate;
}

@FixedLengthRecord(isHeader = true)
public  class OrderHeader {
    @DataField(pos = 1, length = 1)
    private int recordType = 1;

    @DataField(pos = 2, length = 10, pattern = "dd-MM-yyyy")
    private Date recordDate;
}

@FixedLengthRecord(isFooter = true)
public class OrderFooter {

    @DataField(pos = 1, length = 1)
    private int recordType = 9;

    @DataField(pos = 2, length = 9, align = "R", paddingChar = '0')
    private int numberOfRecordsInTheFile;
}
Copy to Clipboard Toggle word wrap

케이스 7: 고정 길이 레코드를 구문 분석할 때 콘텐츠를 Skipping합니다. (Camel 2.11.1)

일반적으로 고정 길이 레코드에는 대상 사용 사례에 필요한 것보다 더 많은 정보가 포함된 고정 길이 레코드를 제공하는 시스템과의 통합이 일반적입니다. 이 경우 필요하지 않은 해당 필드의 선언 및 구문 분석을 건너뛰는 것이 유용합니다. 이를 이해하기 위해 Bindy는 마지막 구문 분석 필드의 'pos' 값이 마지막 구문 분석 필드의 커서 위치를 벗어나는 경우 레코드 내의 다음 매핑된 필드로 건너뜁니다. 관심 필드(오드인 값 대신)에 절대 'pos' 위치를 사용하면 bindy가 두 필드 간에 콘텐츠를 건너뜁니다.

마찬가지로 일부 필드 이외의 콘텐츠는 관심이 없습니다. 이 경우 @FixedLengthRecord 선언에서 ignoreTrailingChars 속성을 설정하여 마지막 매핑된 필드 이외의 모든 항목의 구문 분석을 건너뛰도록 Bindy를 지시할 수 있습니다.

@FixedLengthRecord(ignoreTrailingChars = true)
public static class Order {

    @DataField(pos = 1, length = 2)
    private int orderNr;

    @DataField(pos = 3, length = 2)
    private String clientNr;

    // any characters that appear beyond the last mapped field will be ignored

}
Copy to Clipboard Toggle word wrap

48.8. 5. 메시지

Message 주석은 키 값 쌍 필드를 포함하는 모델의 클래스를 식별하는 데 사용됩니다. 이러한 유형의 형식은 주로 재무 교환 프로토콜 메시지 (FIX)에서 사용됩니다. 그럼에도 불구하고 이 주석은 데이터가 키로 식별되는 다른 모든 형식에 사용할 수 있습니다. 키 쌍 값은 탭 delimitor (unicode representation : \u0009) 또는 제목 시작(예: \u0001)과 같은 특수 문자가 될 수 있는 구분 기호로 서로 분리됩니다.

*"FIX information"*
Copy to Clipboard Toggle word wrap

FIX에 대한 자세한 내용은 다음 웹 사이트에서 확인할 수 있습니다 : http://www.fixprotocol.org/. FIX 메시지를 사용하려면 모델에 Order 클래스일 수 있는 루트 메시지 클래스에 연결된 헤더 및 Trailer 클래스가 포함되어 있어야 합니다. 이는 필수 사항은 아니지만 quickFix 프로젝트 http://www.quickfixj.org/ 을 기반으로 하는 Fix gateway인 camel-fix와 함께 camel-bindy를 사용할 때 매우 유용합니다.

Expand
주석 이름레코드 유형level

메시지

키 값 쌍

class

Expand
매개변수 이름type정보

pairSeparator

string

필수 - '=' 또는 ';' 또는 ' anything'일 수 있습니다.

keyValuePairSeparair

string

필수 - '\u0001', '\u0009', '#' 또는 'anything'일 수 있습니다.

crlf

string

선택 사항 - 가능한 값 = WINDOWS,UNIX,MAC 또는 custom; default 값 = WINDOWS - 사용할 캐리지 리턴 문자를 정의할 수 있습니다. 앞에 나열된 세 개 이외의 값을 지정하면 입력하는 값 (custom)이 CRLF 문자로 사용됩니다.

type

string

선택 사항 - 메시지 유형을 정의합니다(예: FIX, EMX, …​).

version

string

선택 사항 - 메시지의 버전 (예: 4.1)

isOrdered

boolean

선택 사항 - default value = false - FIX 메시지가 생성될 때 필드의 순서를 변경할 수 있습니다. 이 주석은 모델의 메시지 클래스에 연결되어 있으며 한 번만 선언해야 합니다.

케이스 1: separator = 'u0001'

FIX 메시지에서 키 값 쌍 필드를 분리하는 데 사용되는 구분 기호는 ASCII '01' 문자 또는 유니코드 형식 '\u0001'입니다. java 런타임 오류를 방지하려면 이 문자를 두 번째로 이스케이프해야 합니다. 다음은 이에 대한 예입니다.Here is an example:

8=FIX.4.1 9=20 34=1 35=0 49=INVMGR 56=BRKR 1=BE.CHM.001 11=CHM0001-01
22=4 ...
Copy to Clipboard Toggle word wrap

및 주석 사용 방법

FIX - 메시지

@Message(keyValuePairSeparator = "=", pairSeparator = "\u0001", type="FIX", version="4.1")
public class Order {

}
Copy to Clipboard Toggle word wrap
*Look at test cases*
Copy to Clipboard Toggle word wrap

tab, …​과 같은 ASCII 문자는 WIKI 페이지에 표시할 수 없습니다. 따라서 FIX 메시지가 (src\test\data\fix\fix\fix.txt)와 Order, Trailer, Header 클래스 (src\test\java\org\apache\camel\dataformat\data format\bindy\bindy\bindy\bindy\bindy\bindy\simple\Order)와 같은 방식을 정확하게 보려면 camel-bindy의 테스트 케이스를 살펴보십시오.

48.9. 6. KeyValuePairField

KeyValuePairField 주석은 키 값 쌍 필드의 속성을 정의합니다. 각 KeyValuePairField는 태그(= 키) 및 연결된 값(문자열, int, date, …​, 선택 사항)으로 식별되고 필드가 필요한 경우 선택적으로 표시됩니다.

Expand
주석 이름레코드 유형level

KeyValuePairField

키 값 쌍 - FIX

속성

Expand
매개변수 이름type정보

tag

int

필수 - 메시지의 필드를 식별하는 숫자 - 고유해야 합니다.

패턴

string

선택 사항 - 기본값 = "" - # 10진수, 날짜, …​ 형식을 지정하는 데 사용됩니다.

Precision

int

선택 사항 - 숫자 번호의 서식/분수를 포맷/분할 때 사용할 전체 자릿수를 나타냅니다. optional - digit number - represents the precision to be used when the decimal number will be formatted/parsed.

위치

int

선택 사항 - FIX 메시지의 키/태그 위치가 다른 경우 사용해야 합니다.

필수 항목

boolean

optional - default value = "false"

impliedDecimalSeparator

boolean

Camel 2.11: 선택 사항 - 기본값 = "false" - 지정된 위치에 임차된 소수점이 있는지 여부를 나타냅니다.

케이스 1 : 태그

이 매개변수는 메시지에 있는 필드의 키를 나타냅니다.

FIX 메시지 - 태그

@Message(keyValuePairSeparator = "=", pairSeparator = "\u0001", type="FIX", version="4.1")
public class Order {

    @Link Header header;

    @Link Trailer trailer;

    @KeyValuePairField(tag = 1) // Client reference
    private String Account;

    @KeyValuePairField(tag = 11) // Order reference
    private String ClOrdId;

    @KeyValuePairField(tag = 22) // Fund ID type (Sedol, ISIN, ...)
    private String IDSource;

    @KeyValuePairField(tag = 48) // Fund code
    private String SecurityId;

    @KeyValuePairField(tag = 54) // Movement type ( 1 = Buy, 2 = sell)
    private String Side;

    @KeyValuePairField(tag = 58) // Free text
    private String Text;
}
Copy to Clipboard Toggle word wrap

케이스 2 : 출력의 다른 위치

FIX 메시지에 적용할 태그/키가 미리 정의된 순서에 따라 정렬되어야 하는 경우 주석 @KeyValuePairField의 'position' 특성을 사용합니다.

FIX 메시지 - 태그 - 정렬

@Message(keyValuePairSeparator = "=", pairSeparator = "\\u0001", type = "FIX", version = "4.1", isOrdered = true)
public class Order {

    @Link Header header;

    @Link Trailer trailer;

    @KeyValuePairField(tag = 1, position = 1) // Client reference
    private String account;

    @KeyValuePairField(tag = 11, position = 3) // Order reference
    private String clOrdId;
}
Copy to Clipboard Toggle word wrap

48.10. 7. 섹션

고정 길이 레코드의 FIX 메시지에서 정보 : 헤더, 본문 및 섹션을 나타내는 다른 섹션을 포함하는 것이 일반적입니다. 주석 @Section의 목적은 모델의 어떤 클래스가 헤더를 나타내는지 나타내는 바인딩(= 섹션 1), 본문(= 섹션 2) 및 바닥글(= 섹션 3)을 알리는 것입니다.

이 주석에 대해 하나의 속성/ 매개변수만 있습니다.

Expand
주석 이름레코드 유형level

섹션

FIX

class

Expand
매개변수 이름type정보

숫자

int

섹션 위치를 식별하는 숫자

케이스 1 : 섹션

header 섹션의 정의

FIX message - 섹션 - 헤더

@Section(number = 1)
public class Header {

    @KeyValuePairField(tag = 8, position = 1) // Message Header
    private String beginString;

    @KeyValuePairField(tag = 9, position = 2) // Checksum
    private int bodyLength;
}
Copy to Clipboard Toggle word wrap

본문 섹션에 대한 정의

FIX message - 섹션 - 본문

@Section(number = 2)
@Message(keyValuePairSeparator = "=", pairSeparator = "\\u0001", type = "FIX", version = "4.1", isOrdered = true)
public class Order {

    @Link Header header;

    @Link Trailer trailer;

    @KeyValuePairField(tag = 1, position = 1) // Client reference
    private String account;

    @KeyValuePairField(tag = 11, position = 3) // Order reference
    private String clOrdId;
Copy to Clipboard Toggle word wrap

바닥글 섹션에 대한 정의

수정 메시지 - 섹션 - Footer

@Section(number = 3)
public class Trailer {

    @KeyValuePairField(tag = 10, position = 1)
    // CheckSum
    private int checkSum;

    public int getCheckSum() {
        return checkSum;
    }
Copy to Clipboard Toggle word wrap

48.11. 8. OneToMany

주석 @OneToMany의 용도는 List<? > 필드에서 POJO 클래스를 정의하거나 반복적인 그룹을 포함하는 레코드에서 작업할 수 있도록 하는 것입니다.

*Restrictions OneToMany*
Copy to Clipboard Toggle word wrap

여러 수준의 계층 구조에서 정의된 반복을 처리할 수 없습니다.Easily, the one to bindy does not allow to handle repetitions defined on several levels of the hierarchy.

다음 경우 관련 OneToMany ONLY WORKS:

  • 반복적인 그룹(= 태그/키 그룹)이 포함된 FIX 메시지 읽기
  • 반복적인 데이터로 CSV 생성
Expand
주석 이름레코드 유형level

OneToMany

all

속성

Expand
매개변수 이름type정보

mappedTo

string

선택 사항 - 문자열 - 클래스의 Type에 연결된 클래스 이름

케이스 1 : 반복적인 데이터로 CSV 생성

다음은 우리가 원하는 CSV 출력입니다.

Claus,Ibsen,Camel in Action 1,2010,35
Claus,Ibsen,Camel in Action 2,2012,35
Claus,Ibsen,Camel in Action 3,2013,35
Claus,Ibsen,Camel in Action 4,2014,35
Copy to Clipboard Toggle word wrap

Remark : 반복적인 데이터는 첫 번째, 마지막 이름과 나이는 일반적인 책과 게시 날짜의 제목과 관련이 있습니다.

또한 이 문제를 모델링하는 데 사용되는 클래스입니다. Author 클래스에는 도서 목록이 포함되어 있습니다.

반복적인 데이터로 CSV 생성

@CsvRecord(separator=",")
public class Author {

    @DataField(pos = 1)
    private String firstName;

    @DataField(pos = 2)
    private String lastName;

    @OneToMany
    private List<Book> books;

    @DataField(pos = 5)
    private String Age;
}

public class Book {

    @DataField(pos = 3)
    private String title;

    @DataField(pos = 4)
    private String year;
}
Copy to Clipboard Toggle word wrap

매우 간단한 것은 아닙니다!

케이스 2 : 태그/키 그룹이 포함된 FIX 메시지 읽기

다음은 우리 모델에서 처리하려는 메시지입니다.Here is the message that we want to process in our model:

8=FIX 4.19=2034=135=049=INVMGR56=BRKR
1=BE.CHM.00111=CHM0001-0158=this is a camel - bindy test
22=448=BE000124567854=1
22=548=BE000987654354=2
22=648=BE000999999954=3
10=220
Copy to Clipboard Toggle word wrap

태그(2, 48 및 54)가 반복됨

그리고 코드

태그/키 그룹이 포함된 FIX 메시지 읽기

public class Order {

    @Link Header header;

    @Link Trailer trailer;

    @KeyValuePairField(tag = 1) // Client reference
    private String account;

    @KeyValuePairField(tag = 11) // Order reference
    private String clOrdId;

    @KeyValuePairField(tag = 58) // Free text
    private String text;

    @OneToMany(mappedTo = "org.apache.camel.dataformat.bindy.model.fix.complex.onetomany.Security")
    List<Security> securities;
}

public class Security {

    @KeyValuePairField(tag = 22) // Fund ID type (Sedol, ISIN, ...)
    private String idSource;

    @KeyValuePairField(tag = 48) // Fund code
    private String securityCode;

    @KeyValuePairField(tag = 54) // Movement type ( 1 = Buy, 2 = sell)
    private String side;
}
Copy to Clipboard Toggle word wrap

48.12. 9. BindyConverter

주석 @BindyConverter의 목적은 필드 수준에서 사용할 변환기를 정의합니다. 제공된 클래스는 Format 인터페이스를 구현해야 합니다.

@FixedLengthRecord(length = 10, paddingChar = ' ')
public static class DataModel {
    @DataField(pos =  1, length = 10, trim = true)
    @BindyConverter(CustomConverter.class)
    public String field1;
}

public static class CustomConverter implements Format<String> {
    @Override
    public String format(String object) throws Exception {
        return (new StringBuilder(object)).reverse().toString();
    }

    @Override
    public String parse(String string) throws Exception {
        return (new StringBuilder(string)).reverse().toString();
    }
}
Copy to Clipboard Toggle word wrap

48.13. 10. FormatFactories

주석 @FormatFactories의 목적은 레코드 수준에서 변환기 집합을 정의하는 것입니다. 제공된 클래스는 FormatFactoryInterface 인터페이스를 구현해야 합니다.

@CsvRecord(separator = ",")
@FormatFactories({OrderNumberFormatFactory.class})
public static class Order {

    @DataField(pos = 1)
    private OrderNumber orderNr;

    @DataField(pos = 2)
    private String firstName;
}

public static class OrderNumber {
    private int orderNr;

    public static OrderNumber ofString(String orderNumber) {
        OrderNumber result = new OrderNumber();
        result.orderNr = Integer.valueOf(orderNumber);
        return result;
    }
}

public static class OrderNumberFormatFactory extends AbstractFormatFactory {

    {
        supportedClasses.add(OrderNumber.class);
    }

    @Override
    public Format<?> build(FormattingOptions formattingOptions) {
        return new Format<OrderNumber>() {
            @Override
            public String format(OrderNumber object) throws Exception {
                return String.valueOf(object.orderNr);
            }

            @Override
            public OrderNumber parse(String string) throws Exception {
                return OrderNumber.ofString(string);
            }
        };
    }
}
Copy to Clipboard Toggle word wrap

48.14. 지원되는 데이터 유형

DefaultFormatFactory는 제공된 FormattingOptions를 기반으로 인터페이스 FormatFactoryInterface의 인스턴스를 반환하여 다음 데이터 형식을 사용할 수 있습니다.

  • BigDecimal
  • BigInteger
  • 부울
  • byte
  • 문자
  • 날짜
  • double
  • enums
  • float
  • 정수
  • LocalDate ( 2.18.0 이후의java 8)
  • LocalDateTime ( 2.18.0 이후의java 8)
  • localtime ( 2.18.0 이후java 8)
  • long
  • short
  • 문자열

DefaultFormatFactory는 사용 중인 레지스트리에 FactoryRegistry 인스턴스를 제공하여 재정의할 수 있습니다(예: Spring 또는 JNDI).

48.15. Java DSL 사용

다음 단계는 이 레코드 유형과 연결된 DataFormat bindy 클래스를 인스턴스화하고 Java 패키지 이름을 매개 변수로 제공하는 것입니다.

예를 들어 다음에서는 BindyCsvDataFormat 클래스를 사용하며 CSV 레코드 유형과 연결된 클래스에 해당하는 클래스를 com.acme.model 패키지 이름으로 구성하여 이 패키지에 구성된 모델 개체를 초기화합니다.For example, the following uses the class BindyCsvDataFormat (who correspond to the class associated with the CSV record type) which is configured with com.acme.model package name to initialize the model objects configured in this package.

// Camel 2.15 or older (configure by package name)
DataFormat bindy = new BindyCsvDataFormat("com.acme.model");

 
// Camel 2.16 onwards (configure by class name)
DataFormat bindy = new BindyCsvDataFormat(com.acme.model.MyModel.class);
Copy to Clipboard Toggle word wrap

48.15.1. 로케일 설정

Bindy는 다음과 같이 dataformat의 로캘 구성을 지원합니다. 

// Camel 2.15 or older (configure by package name)
BindyCsvDataFormat bindy = new BindyCsvDataFormat("com.acme.model");
// Camel 2.16 onwards (configure by class name)
BindyCsvDataFormat bindy = new BindyCsvDataFormat(com.acme.model.MyModel.class);

bindy.setLocale("us");
Copy to Clipboard Toggle word wrap

또는 플랫폼 기본 로케일을 사용하려면 로케일 이름으로 "default"를 사용합니다. Camel 2.14/2.13.3/2.12.5가 필요합니다.

// Camel 2.15 or older (configure by package name)
BindyCsvDataFormat bindy = new BindyCsvDataFormat("com.acme.model");
// Camel 2.16 onwards (configure by class name)
BindyCsvDataFormat bindy = new BindyCsvDataFormat(com.acme.model.MyModel.class);

bindy.setLocale("default");
Copy to Clipboard Toggle word wrap

이전 릴리스의 경우 다음과 같이 Java 코드를 사용하여 설정할 수 있습니다.

// Camel 2.15 or older (configure by package name)
BindyCsvDataFormat bindy = new BindyCsvDataFormat("com.acme.model");
// Camel 2.16 onwards (configure by class name)
BindyCsvDataFormat bindy = new BindyCsvDataFormat(com.acme.model.MyModel.class);

bindy.setLocale(Locale.getDefault().getISO3Country());
Copy to Clipboard Toggle word wrap

48.15.2. Unmarshaling

from("file://inbox")
  .unmarshal(bindy)
  .to("direct:handleOrders");
Copy to Clipboard Toggle word wrap

또는 Spring XML 파일과 같이 레지스트리에 정의된 다음 데이터 형식에 대해 명명된 참조를 사용할 수 있습니다.

from("file://inbox")
  .unmarshal("myBindyDataFormat")
  .to("direct:handleOrders");
Copy to Clipboard Toggle word wrap

Camel 경로는 inbox 디렉터리의 파일 선택, unmarshall CSV 레코드를 모델 오브젝트 컬렉션으로 선택하고 컬렉션
을 'handleOrders'에서 참조하는 경로로 보냅니다.

반환된 컬렉션은 Map 오브젝트의 목록입니다. 목록의 각 맵에는 CSV의 각 줄에서 마샬링된 모델 개체가 포함되어 있습니다. 이 문제의 원인은 각 행이 두 개 이상의 오브젝트에 해당할 수 있기 때문입니다. 이는 단순히 한 줄에 하나의 개체가 반환될 것으로 예상하면 혼동될 수 있습니다.

각 오브젝트는 해당 클래스 이름을 사용하여 검색할 수 있습니다.

List<Map<String, Object>> unmarshaledModels = (List<Map<String, Object>>) exchange.getIn().getBody();

int modelCount = 0;
for (Map<String, Object> model : unmarshaledModels) {
  for (String className : model.keySet()) {
     Object obj = model.get(className);
     LOG.info("Count : " + modelCount + ", " + obj.toString());
  }
 modelCount++;
}

LOG.info("Total CSV records received by the csv bean : " + modelCount);
Copy to Clipboard Toggle word wrap

경로의 처리를 위해 이 맵에서 단일 Order 오브젝트를 추출하려는 경우 다음 내용에 따라 Splitter와 Processor의 조합을 사용할 수 있습니다.

from("file://inbox")
    .unmarshal(bindy)
    .split(body())
        .process(new Processor() {
            public void process(Exchange exchange) throws Exception {
                Message in = exchange.getIn();
                Map<String, Object> modelMap = (Map<String, Object>) in.getBody();
                in.setBody(modelMap.get(Order.class.getCanonicalName()));
            }
        })
        .to("direct:handleSingleOrder")
    .end();
Copy to Clipboard Toggle word wrap

Bindy는 unmarshalling을 위해 수신한 입력 스트림의 문자 세트 변환을 수행하기 위해 Exchange 인터페이스에서 정의된 사용자 이름 또는 CHARSET_NAME 헤더를 사용합니다. 일부 생산자(예: file-endpoint)에서는 문자 집합을 정의할 수 있습니다. 이 프로듀서의 변환은 이미 수행 할 수 있습니다. 때로는 unmarshal으로 보내기 전에 교환에서 이 속성 또는 헤더를 제거해야 합니다. 이를 제거하지 않으면 변환이 두 번 수행되어 원하지 않는 결과가 발생할 수 있습니다.

from("file://inbox?charset=Cp922")
  .removeProperty(Exchange.CHARSET_NAME)
  .unmarshal("myBindyDataFormat")
  .to("direct:handleOrders");
Copy to Clipboard Toggle word wrap

48.15.3. 마샬링

모델 오브젝트 컬렉션에서 CSV 레코드를 생성하려면 다음 경로를 생성합니다.

from("direct:handleOrders")
   .marshal(bindy)
   .to("file://outbox")
Copy to Clipboard Toggle word wrap

48.16. Spring XML 사용

이것은 camel-bindy에 사용할 경로를 선언하기 위해 선호하는 DSL 언어로 Spring을 사용하기 쉽습니다. 다음 예제에서는 파일에서 첫 번째 레코드를 선택하는 두 개의 경로를 보여줍니다. 즉, 콘텐츠를 압축 해제하고 해당 모델에 바인딩합니다. 그러면 그 결과가 pojo로 보내(특별하지 않음) 큐에 배치합니다.

두 번째 경로는 큐에서 pojos를 추출하고 콘텐츠를 마샬링하여 csv 레코드가 포함된 파일을 생성합니다. 위의 예는 Camel 2.16 이상을 사용하는 것입니다.

spring dsl

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://camel.apache.org/schema/spring
       http://camel.apache.org/schema/spring/camel-spring.xsd">

    <!-- Queuing engine - ActiveMq - work locally in mode virtual memory -->
    <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
        <property name="brokerURL" value="vm://localhost:61616"/>
    </bean>

    <camelContext xmlns="http://camel.apache.org/schema/spring">
        <dataFormats>
          <bindy id="bindyDataformat" type="Csv" classType="org.apache.camel.bindy.model.Order"/>
        </dataFormats>

        <route>
            <from uri="file://src/data/csv/?noop=true" />
            <unmarshal ref="bindyDataformat" />
            <to uri="bean:csv" />
            <to uri="activemq:queue:in" />
        </route>

        <route>
            <from uri="activemq:queue:in" />
            <marshal ref="bindyDataformat" />
            <to uri="file://src/data/csv/out/" />
        </route>
    </camelContext>
</beans>
Copy to Clipboard Toggle word wrap
참고

모델 클래스가 serializable을 구현했는지 확인하십시오. 그렇지 않으면 큐 관리자가 오류를 발생시킵니다.

48.17. 종속 항목

camel 경로에서 Bindy를 사용하려면 이 데이터 형식을 구현하는 camel-bindy 에 종속성을 추가해야 합니다.

maven을 사용하는 경우 pom.xml에 다음을 추가하면 최신 및 가장 큰 릴리스의 버전 번호를 대체합니다(최신 버전의 다운로드 페이지 참조).

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-bindy</artifactId>
  <version>x.x.x</version>
</dependency>
Copy to Clipboard Toggle word wrap

49장. Camel에서 OSGi 청사진 사용

블루프린트용 사용자 지정 XML 네임스페이스가 생성되어 우수한 XML 전화 기능을 활용할 수 있습니다. Blueprint 사용자 지정 네임스페이스가 아직 표준화되지 않은 경우 이 네임스페이스는 Apache Karaf에서 사용하는 Apache Aries Blueprint 구현에서만 사용할 수 있습니다.

49.1. 개요

XML 스키마는 주로 Spring용 항목과 동일하므로 Spring XML을 참조하는 설명서 전체의 모든 xml 스니펫도 Blueprint 경로에 적용됩니다.

청사진을 사용하는 매우 간단한 경로 정의는 다음과 같습니다.

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
        <route>
            <from uri="timer:test" />
            <to uri="log:test" />
        </route>
    </camelContext>

</blueprint>
Copy to Clipboard Toggle word wrap

이 시점에서 지원되는 xml 요소( Spring xml 구문 비교)에 대한 몇 가지 제한 사항이 있습니다.

  • beanPostProcessor는 Spring에만 해당되며 허용되지 않습니다.

그러나 OSGi enviroment에 애플리케이션을 배포할 때 청사진을 사용하면 다음과 같은 몇 가지 이점이 있습니다.

  • 새로운 camel 버전으로 업그레이드할 때 번들에서 가져오는 camel 패키지를 기반으로 올바른 버전이 선택되므로 네임스페이스를 변경할 필요가 없습니다.
  • 사용자 정의 네임스페이스 및 번들과 관련하여 시작 순서 문제가 없음
  • Blueprint 속성 자리 표시자를 사용할 수 있습니다.

49.2. camel-blueprint 사용

OSGi의 camel-blueprint를 활용하려면 Aries Blueprint 번들과 camel-blueprint 번들뿐만 아니라 camel-core 및 해당 종속 항목만 있으면 됩니다.

Karaf를 사용하는 경우 모든 필수 번들을 설치하는 camel-blueprint라는 기능을 사용할 수 있습니다.

50장. Bonita 구성 요소

Camel 버전 2.19에서 사용 가능

원격 Bonita BPM 프로세스 엔진과 통신하는 데 사용됩니다.

50.1. URI 형식

bonita://[operation]?[options]
Copy to Clipboard Toggle word wrap

여기서 작업 은 Bonita에서 수행해야 하는 특정 작업입니다.

50.2. 일반 옵션

Bonita 구성 요소에는 옵션이 없습니다.

Bonita 엔드포인트는 URI 구문을 사용하여 구성됩니다.

bonita:operation
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

50.2.1. 경로 매개 변수 (1 매개변수):

Expand
이름설명기본값유형

작업

사용하는 데 필요한 작업

 

BonitaOperation

50.2.2. 쿼리 매개변수(9 매개변수):

Expand
이름설명기본값유형

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

호스트 이름 (consumer)

Bonita 엔진이 실행되는 호스트 이름

localhost

문자열

포트 (소비자)

Bonita 엔진을 호스팅하는 서버 포트

8080

문자열

ProcessName (consumer)

작업에 관련된 프로세스의 이름입니다.

 

문자열

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

암호 (보안)

Bonita 엔진에 인증하기 위한 암호.

 

문자열

사용자 이름 (보안)

Bonita 엔진에 인증할 사용자 이름입니다.

 

문자열

50.3. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.bonita.enabled

bonita 구성 요소 활성화

true

부울

camel.component.bonita.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

50.4. 본문 콘텐츠

startCase 작업의 경우 입력 변수가 본문 메시지에서 검색됩니다. Map<String,Serializable>을 포함해야 합니다.

50.5. 예제

다음 예제에서는 Bonita에서 새 케이스를 시작합니다.

from("direct:start").to("bonita:startCase?hostname=localhost&amp;port=8080&amp;processName=TestProcess&amp;username=install&amp;password=install")
Copy to Clipboard Toggle word wrap

50.6. 종속 항목

Camel 경로에서 Bonita를 사용하려면 구성 요소를 구현하는 camel-bonita 에 종속성을 추가해야 합니다.

Maven을 사용하는 경우 pom.xml에 다음을 추가하여 최신 버전과 가장 큰 릴리스의 버전 번호를 대체합니다(최신 버전의 다운로드 페이지 참조).

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-bonita</artifactId>
  <version>x.x.x</version>
</dependency>
Copy to Clipboard Toggle word wrap

51장. boon DataFormat

Camel 버전 2.16에서 사용 가능

boon은 Boon JSON 마샬링 라이브러리를 사용하여 JSON 페이로드를 Java 객체로 분리하거나 Java 개체를 JSON 페이로드로 마샬링하는 데이터 형식입니다. boon은 현재 사용되는 다른 일반 파서보다 간단하고  른 파서가되는 것을 목표로 합니다.

51.1. 옵션

Boon dataformat은 아래 나열된 3가지 옵션을 지원합니다.

Expand
이름기본값Java Type설명

unmarshalTypeName

 

문자열

armshalling할 때 사용할 Java 유형의 클래스 이름

useList

false

부울

맵 목록 또는 Pojo 목록에 대한 총합을 해제하려면 다음을 수행합니다.

contentTypeHeader

false

부울

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

51.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 4 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.dataformat.boon.content-type-header

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

false

부울

camel.dataformat.boon.enabled

boon dataformat 활성화

true

부울

camel.dataformat.boon.unmarshal-type-name

armshalling할 때 사용할 Java 유형의 클래스 이름

 

문자열

camel.dataformat.boon.use-list

맵 목록 또는 Pojo 목록에 대한 총합을 해제하려면 다음을 수행합니다.

false

부울

ND

51.3. Java DSL 사용

DataFormat boonDataFormat = new BoonDataFormat("com.acme.model.Person");

from("activemq:My.Queue")
  .unmarshal(boonDataFormat)
  .to("mqseries:Another.Queue");
Copy to Clipboard Toggle word wrap

51.4. Blueprint XML 사용

<bean id="boonDataFormat" class="org.apache.camel.component.boon.BoonDataFormat">
  <argument value="com.acme.model.Person"/>
</bean>

<camelContext id="camel" xmlns="http://camel.apache.org/schema/blueprint">
  <route>
    <from uri="activemq:My.Queue"/>
    <unmarshal ref="boonDataFormat"/>
    <to uri="mqseries:Another.Queue"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

51.5. 종속 항목

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-boon</artifactId>
  <version>x.x.x</version>
</dependency>
Copy to Clipboard Toggle word wrap

52장. 박스 구성 요소

Camel 버전 2.14로 사용 가능

Box 구성 요소를 사용하면 https://github.com/box/box-java-sdk 을 사용하여 액세스할 수 있는 모든 Box.com API에 액세스할 수 있습니다. 이를 통해 파일을 업로드하고 다운로드하고 폴더를 생성, 편집 및 관리하는 메시지를 생성할 수 있습니다. 또한 사용자 계정 업데이트 및 엔터프라이즈 계정 변경 등을 폴링할 수 있는 API도 지원합니다.

box.com은 모든 클라이언트 애플리케이션 인증에 OAuth2.0을 사용해야 합니다. 계정에 camel-box를 사용하려면 Box.com 내에 새 애플리케이션을 https://developer.box.com. Box 애플리케이션의 클라이언트 ID 및 시크릿을 사용하면 현재 사용자가 필요한 Box API에 액세스할 수 있습니다. 사용자 액세스 토큰은 최종 사용자에 대한 API에서 생성하고 관리합니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-box</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

52.1. 연결 인증 유형

Box 구성 요소는 인증된 세 가지 유형의 인증된 연결을 지원합니다.

52.1.1. 표준 인증

표준 인증OAuth 2.0 3 계층 인증 프로세스 를 사용하여 Box.com으로 연결을 인증합니다. 이 유형의 인증을 사용하면 Box 관리 사용자와 외부 사용자 가 Box 구성 요소를 통해 Box 콘텐츠에 액세스, 편집 및 저장할 수 있습니다.

52.1.2. App Enterprise Authentication

App Enterprise AuthenticationJSON Web Tokens(JWT)와 OAuth 2.0 을 사용하여 Box Application서비스 계정 으로 연결을 인증합니다. 이 유형의 인증을 사용하면 서비스 계정이 Box 구성 요소를 통해 Box Application 의 Box 콘텐츠에 액세스, 편집 및 저장할 수 있습니다.

52.1.3. 앱 사용자 인증

App User AuthenticationJSON Web Tokens(JWT)와 OAuth 2.0 을 사용하여 Box ApplicationApp User 로 연결을 인증합니다. 이러한 유형의 인증을 통해 앱 사용자는 Box 구성 요소를 통해 Box Application 에 액세스, 편집 및 저장할 수 있습니다.

52.2. 박스 옵션

Box 구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (일반)

공유 구성을 사용하려면To use the shared configuration

 

BoxConfiguration

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Box 엔드포인트는 URI 구문을 사용하여 구성됩니다.

box:apiName/methodName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

52.2.1. 경로 매개 변수(2 매개변수):

Expand
이름설명기본값유형

apiName

떤 종류의 작업을 수행해야 합니까?

 

BoxApiName

methodName

선택한 작업에 사용할 하위 작업 필요

 

문자열

52.2.2. 쿼리 매개변수 (20 매개변수):

Expand
이름설명기본값유형

clientID( 일반)

box 애플리케이션 클라이언트 ID

 

문자열

enterpriseId (공용)

앱 엔터프라이즈에 사용할 엔터프라이즈 ID입니다.

 

문자열

InBody (일반)

교환 In Body에서 전달할 매개 변수의 이름을 설정합니다.

 

문자열

userid (common)

앱 사용자에 사용할 사용자 ID입니다.

 

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

httpParams (고급)

프록시 호스트와 같은 설정에 대한 사용자 정의 HTTP 매개변수

 

map

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

accessTokenCache (security)

액세스 토큰을 저장하고 검색하는 데 사용되는 사용자 정의 액세스 토큰 캐시입니다.

 

IAccessTokenCache

clientSecret (보안)

박스 애플리케이션 클라이언트 시크릿

 

문자열

encryptionAlgorithm (보안)

JWT의 암호화 알고리즘 유형입니다. 지원되는 알고리즘: RSA_SHA_256 RSA_SHA_384 RSA_SHA_512

RSA_SHA_256

EncryptionAlgorithm

maxCacheEntries (보안)

캐시의 최대 액세스 토큰 수입니다.

100

int

authenticationType (authentication)

연결의 인증 유형입니다. 인증 유형: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - OAuth 2.0 with JSON Web Tokens

APP_USER_AUTHENTICATION

문자열

privateKeyFile (security)

JWT 서명을 생성하는 개인 키입니다.

 

문자열

privateKeyPassword (보안)

개인 키의 암호입니다.

 

문자열

publicKeyId (security)

JWT 서명을 검증하기 위한 공개 키의 ID입니다.

 

문자열

sslContextParameters (security)

SSLContextParameters를 사용하여 보안을 구성하려면 다음을 수행합니다.

 

SSLContextParameters

사용자 이름 (보안)

사용자 이름, 제공되어야 합니다.

 

문자열

userPassword (보안)

authSecureStorage가 설정되지 않은 경우 박스 사용자 비밀번호를 제공하거나 첫 번째 통화 시 null을 반환해야 합니다.

 

문자열

52.3. Spring Boot Auto-Configuration

구성 요소는 아래에 나열된 17 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.box.configuration.access-token-cache

액세스 토큰을 저장하고 검색하는 데 사용되는 사용자 정의 액세스 토큰 캐시입니다.

 

IAccessTokenCache

camel.component.box.configuration.api-name

어떤 종류의 작업을 수행합니까?

 

BoxApiName

camel.component.box.configuration.authentication-type

연결의 인증 유형입니다. 인증 유형: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - OAuth 2.0 with JSON Web Tokens

APP_USER_AUTHENTICATION

문자열

camel.component.box.configuration.client-id

box 애플리케이션 클라이언트 ID

 

문자열

camel.component.box.configuration.client-secret

박스 애플리케이션 클라이언트 시크릿

 

문자열

camel.component.box.configuration.enterprise-id

앱 엔터프라이즈에 사용할 엔터프라이즈 ID입니다.

 

문자열

camel.component.box.configuration.http-params

프록시 호스트와 같은 설정에 대한 사용자 정의 HTTP 매개변수

 

map

camel.component.box.configuration.method-name

선택한 작업에 사용할 하위 작업

 

문자열

camel.component.box.configuration.private-key-file

JWT 서명을 생성하는 개인 키입니다.

 

문자열

camel.component.box.configuration.private-key-password

개인 키의 암호입니다.

 

문자열

camel.component.box.configuration.public-key-id

JWT 서명을 검증하기 위한 공개 키의 ID입니다.

 

문자열

camel.component.box.configuration.ssl-context-parameters

SSLContextParameters를 사용하여 보안을 구성하려면 다음을 수행합니다.

 

SSLContextParameters

camel.component.box.configuration.user-id

앱 사용자에 사용할 사용자 ID입니다.

 

문자열

camel.component.box.configuration.user-name

사용자 이름, 제공되어야 합니다.

 

문자열

camel.component.box.configuration.user-password

authSecureStorage가 설정되지 않은 경우 박스 사용자 비밀번호를 제공하거나 첫 번째 통화 시 null을 반환해야 합니다.

 

문자열

camel.component.box.enabled

박스 구성 요소 사용

true

부울

camel.component.box.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

52.4. URI 형식

box:apiName/methodName
Copy to Clipboard Toggle word wrap

apiName은 다음 중 하나일 수 있습니다.

  • 협업
  • 주석
  • event-logs
  • 파일
  • 폴더
  • groups
  • events
  • search
  • tasks
  • 사용자

52.5. 생산자 끝점:

생산자 엔드포인트는 엔드포인트 접두사 뒤에 다음에 설명된 끝점 이름 및 관련 옵션을 사용할 수 있습니다. 일부 엔드포인트에서는 단축 별칭을 사용할 수 있습니다. 엔드포인트 URI에는 접두사가 포함되어야 합니다.

필수가 아닌 엔드포인트 옵션은 [] 로 표시됩니다. 끝점에 대한 필수 옵션이 없는 경우 [] 옵션 세트 중 하나를 제공해야 합니다. 생산자 엔드포인트는 Camel Exchange In 메시지에 포함된 엔드포인트 옵션의 이름을 포함해야 하는 특수 옵션 inBody 를 사용할 수도 있습니다.

끝점 URI에서 또는 메시지 헤더에서 동적으로 끝점 옵션을 제공할 수 있습니다. 메시지 헤더 이름은 CamelBox.<option> 형식이어야 합니다. inBody 옵션은 메시지 헤더를 덮어씁니다. 즉 inBody=option 의 endpoint 옵션은 CamelBox.option 헤더를 재정의합니다.

끝점 URI 또는 메시지 헤더에 있는 옵션 defaultRequest에 대해 값이 제공되지 않으면 null 로 간주됩니다. null 값은 다른 옵션이 일치하는 엔드 포인트를 충족하지 않는 경우에만 사용됩니다.

Box API 오류가 발생하는 경우 끝점에서 com.box.sdk.BoxAPIException 파생 예외를 사용하여 RuntimeCamelException을 throw합니다.

52.5.1. 끝점 접두사 협업

박스 협업에 대한 자세한 내용은 https://developer.box.com/reference#collaboration-object 에서 참조하십시오. 다음과 같이 접두사 협업 을 사용하여 다음 끝점을 호출할 수 있습니다.

box:collaborations/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

addFolderCollaboration

add

folderId, collaborator, role

com.box.sdk.BoxCollaboration

addFolderCollaborationByEmail

addByEmail

folderId, email, role

com.box.sdk.BoxCollaboration

deleteCollaboration

delete

collaborationId

 

getFolderCollaborations

협업

folderId

java.util.Collection

getPendingCollaborations

pendingCollaborations

 

java.util.Collection

getCollaborationInfo

info

collaborationId

com.box.sdk.BoxCollaboration.Info

updateCollaborationInfo

updateInfo

collaborationId, info

com.box.sdk.BoxCollaboration

협업을 위한 URI 옵션

Expand
이름유형

collaborationId

문자열

협력자

com.box.sdk.BoxCollaborator

role

com.box.sdk.BoxCollaboration.Role

folderId

문자열

email

문자열

info

com.box.sdk.BoxCollaboration.Info

52.5.2. 끝점 접두사 주석

Box 주석에 대한 자세한 내용은 https://developer.box.com/reference#comment-object 을 참조하십시오. 다음과 같이 접두사 주석 을 사용하여 다음 끝점을 호출할 수 있습니다.

box:comments/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

addFileComment

add

fileId, message

com.box.sdk.BoxFile

changeCommentMessage

updateMessage

commentId, message

com.box.sdk.BoxComment

deleteComment

delete

commentId

 

getCommentInfo

info

commentId

com.box.sdk.BoxComment.Info

getFileComments

주석

fileId

java.util.List

replyToComment

응답

commentId, message

com.box.sdk.BoxComment

협업을 위한 URI 옵션

Expand
이름유형

commentId

문자열

fileId

문자열

message

문자열

52.5.3. 끝점 접두사 events-logs

Box 이벤트 로그에 대한 자세한 내용은 https://developer.box.com/reference#events 을 참조하십시오. 다음과 같이 접두사 event-logs 를 사용하여 다음 끝점을 호출할 수 있습니다.

box:event-logs/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

getEnterpriseEvents

events

위치, 후, 전, [타입]

java.util.List

이벤트로그에 대한 URI 옵션

Expand
이름유형

위치

문자열

after

날짜

before

날짜

types

com.box.sdk.BoxEvent.Types[]

52.5.4. 끝점 접두사 파일

박스 파일에 대한 자세한 내용은 https://developer.box.com/reference#file-object 에서 참조하십시오. 다음과 같이 접두사 파일 을 사용하여 다음 엔드포인트를 호출할 수 있습니다.

box:files/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

uploadFile

업로드

parentFolderId, content, fileName, [created], [modified], [size], [listener]

com.box.sdk.BoxFile

downloadFile

다운로드

fileId, output, [rangeStart], [rangeEnd], [listener]

java.io.OutputStream

copyFile

copy

fileId, destinationFolderId, [newName]

com.box.sdk.BoxFile

moveFile

move

fileId, destinationFolderId, [newName]

com.box.sdk.BoxFile

renameFile

rename

fileId, newFileName

com.box.sdk.BoxFile

createFileSharedLink

link

fileId, access, [unshareDate], [permissions]

com.box.sdk.BoxSharedLink

deleteFile

delete

fileId

 

uploadNewFileVersion

uploadVersion

fileId, fileContent, [modified], [fileSize], [listener]

com.box.boxsdk.BoxFile

promoteFileVersion

promoteVersion

fileId, version

com.box.sdk.BoxFileVersion

getFileVersions

버전

fileId

java.util.Collection

downloadPreviousFileVersions

downloadVersion

fileId, version, output, [listener]

java.io.OutputStream

deleteFileVersion

deleteVersion

fileId, version

 

getFileInfo

info

fileId, fields

com.box.sdk.BoxFile.Info

updateFileInfo

updateInfo

fileId, info

com.box.sdk.BoxFile

createFileMetadata

createMetadata

fileId, metadata, [typeName]

com.box.sdk.Metadata

getFileMetadata

metadata

fileId, [typeName]

com.box.sdk.Metadata

updateFileMetadata

updateMetadata

fileId, metadata

com.box.sdk.Metadata

deleteFileMetadata

deleteMetadata

fileId

 

getDownloadUrl

url

fileId

java.net.URL

getPreviewLink

미리 보기

fileId

java.net.URL

getFileThumbnail

thumbnail

fileId, fileType, minWidth, minHeight, maxWidth, maxHeight

byte[]

파일의 URI 옵션

Expand
이름유형

parentFolderId

문자열

내용

java.io.InputStream

fileName

문자열

created

날짜

modified

날짜

크기

long

listener

com.box.sdk.ProgressListener

출력

java.io.OutputStream

rangeStart

long

rangeEnd

long

outputStreams

java.io.OutputStream[]

destinationFolderId

문자열

newName

문자열

필드

string[]

info

com.box.sdk.BoxFile.Info

fileSize

long

version

정수

액세스

com.box.sdk.BoxSharedLink.Access

unshareDate

날짜

권한

com.box.sdk.BoxSharedLink.Permissions

fileType

com.box.sdk.BoxFile.ThumbnailFileType

minWidth

정수

minHeight

정수

maxWidth

정수

maxHeight

정수

metadata

com.box.sdk.Metadata

typeName

문자열

52.5.5. 끝점 접두사 폴더

박스 폴더에 대한 자세한 내용은 https://developer.box.com/reference#folder-object 에서 참조하십시오. 다음과 같이 접두사 폴더 를 사용하여 다음 엔드포인트를 호출할 수 있습니다.

box:folders/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

getRootFolder

루트

 

com.box.sdk.BoxFolder

createFolder

create

parentFolderId, folderName

com.box.sdk.BoxFolder

createFolder

create

parentFolderId, path

com.box.sdk.BoxFolder

copyFolder

copy

folderId, destinationfolderId, [newName]

com.box.sdk.BoxFolder

moveFolder

move

folderId, destinationFolderId, newName

com.box.sdk.BoxFolder

renameFolder

rename

folderId, newFolderName

com.box.sdk.BoxFolder

createFolderSharedLink

link

folderId, access, [unsharedDate], [permissions]

java.util.List

deleteFolder

delete

folderId

 

getFolder

폴더

경로

com.box.sdk.BoxFolder

getFolderInfo

info

folderId, fields

com.box.sdk.BoxFolder.Info

getFolderItems

items

folderId, offset, limit, fields

java.util.List

updateFolderInfo

updateInfo

folderId, info

com.box.sdk.BoxFolder

폴더에 대한 URI 옵션

Expand
이름유형

경로

string[]

folderId

문자열

offset

long

제한

long

필드

string[]

parentFolderId

문자열

folderName

문자열

destinationFolderId

문자열

newName

문자열

newFolderName

문자열

info

문자열

액세스

com.box.sdk.BoxSharedLink.Access

unshareDate

날짜

권한

com.box.sdk.BoxSharedLink.Permissions

52.5.6. 끝점 접두사 그룹

박스 그룹에 대한 자세한 내용은 https://developer.box.com/reference#group-object 에서 참조하십시오. 다음과 같이 접두사 그룹 을 사용하여 다음 끝점을 호출할 수 있습니다.

box:groups/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

createGroup

create

name, [provenance, externalSyncIdentifier, description, invitabilityLevel, memberViewabilityLevel]

com.box.sdk.BoxGroup

addGroupMembership

createMembership

groupId, userId, role

com.box.sdk.BoxGroupMembership

deleteGroup

delete

groupId

 

getAllGroups

groups

 

java.util.Collection

getGroupInfo

info

groupId

com.box.sdk.BoxGroup.Info

updateGroupInfo

updateInfo

groupId, groupInfo

com.box.sdk.BoxGroup

addGroupMembership

addMembership

groupId, userId, role

com.box.sdk.BoxGroupMembership

deleteGroupMembership

deleteMembership

groupMembershipId

 

getGroupMemberships

memberships

groupId

java.uti.Collection

getGroupMembershipInfo

membershipInfo

groupMemebershipId

com.box.sdk.BoxGroup.Info

updateGroupMembershipInfo

updateMembershipInfo

groupMemebershipId, info

com.box.sdk.BoxGroupMembership

그룹의 URI 옵션

Expand
이름유형

name

문자열

groupId

문자열

userId

문자열

role

com.box.sdk.BoxGroupMembership.Role

groupMembershipId

문자열

info

com.box.sdk.BoxGroupMembership.Info

52.5.7. 끝점 접두사 검색

Box 검색 API에 대한 자세한 내용은 https://developer.box.com/reference#searching-for-content 에서 참조하십시오. 다음과 같이 접두사 검색 을 사용하여 다음 끝점을 호출할 수 있습니다.

box:search/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

searchFolder

search

folderId, query

java.util.Collection

검색URI 옵션

Expand
이름유형

folderId

문자열

query

문자열

52.5.8. 끝점 접두사 작업

박스 작업에 대한 자세한 내용은 https://developer.box.com/reference#task-object-1 에서 참조하십시오. 다음과 같이 접두사 작업 을 사용하여 다음 끝점을 호출할 수 있습니다.

box:tasks/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

addFileTask

add

fileId, action, dueAt, [message]

com.box.sdk.BoxUser

deleteTask

delete

taskId

 

getFileTasks

tasks

fileId

java.util.List

getTaskInfo

info

taskId

com.box.sdk.BoxTask.Info

updateTaskInfo

updateInfo

taskId, info

com.box.sdk.BoxTask

addAssignmentToTask

addAssignment

taskId, assignTo

com.box.sdk.BoxTask

deleteTaskAssignment

deleteAssignment

taskAssignmentId

 

getTaskAssignments

할당

taskId

java.util.List

getTaskAssignmentInfo

assignmentInfo

taskAssignmentId

com.box.sdk.BoxTaskAssignment.Info

작업에대한 URI 옵션

Expand
이름유형

fileId

문자열

작업

com.box.sdk.BoxTask.Action

dueAt

날짜

message

문자열

taskId

문자열

info

com.box.sdk.BoxTask.Info

assignTo

com.box.sdk.BoxUser

taskAssignmentId

문자열

52.5.9. 끝점 접두사 사용자

박스 사용자에 대한 자세한 내용은 https://developer.box.com/reference#user-object 에서 참조하십시오. 다음과 같이 접두사 사용자 를 사용하여 다음 끝점을 호출할 수 있습니다.

box:users/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

getCurrentUser

currentUser

 

com.box.sdk.BoxUser

getAllEnterpriseOrExternalUsers

사용자

filterTerm, [fields]

com.box.sdk.BoxUser

createAppUser

create

name, [params]

com.box.sdk.BoxUser

createEnterpriseUser

create

login, name, [params]

com.box.sdk.BoxUser

deleteUser

delete

userId, notifyUser, force

 

getUserEmailAlias

emailAlias

userId

com.box.sdk.BoxUser

deleteUserEmailAlias

deleteEmailAlias

userId, emailAliasId

java.util.List

getUserInfo

info

userId

com.box.sdk.BoxUser.Info

updateUserInfo

updateInfo

userId, info

com.box.sdk.BoxUser

moveFolderToUser

-

userId, sourceUserId

com.box.sdk.BoxFolder.Info

사용자를 위한 URI 옵션

Expand
이름유형

defaultRequest

com.box.restclientv2.requestsbase.BoxDefaultRequestObject

emailAliasRequest

com.box.boxjavalibv2.requests.requestobjects.BoxEmailAliasRequestObject

emailId

문자열

filterTerm

문자열

folderId

문자열

simpleUserRequest

com.box.boxjavalibv2.requests.requestobjects.BoxSimpleUserRequestObject

userDeleteRequest

com.box.boxjavalibv2.requests.requestobjects.BoxUserDeleteRequestObject

userId

문자열

userRequest

com.box.boxjavalibv2.requests.requestobjects.BoxUserRequestObject

userUpdateLoginRequest

com.box.boxjavalibv2.requests.requestobjects.BoxUserUpdateLoginRequestObject

52.6. 소비자 끝점:

박스 이벤트에 대한 자세한 내용은 https://developer.box.com/reference#events 에서 참조하십시오. 소비자 끝점은 다음에 예제와 같이 끝점 접두사 이벤트 만 사용할 수 있습니다.

box:events/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

events

 

[startingPosition]

com.box.sdk.BoxEvent

이벤트에대한 URI 옵션

Expand
이름유형

startingPosition

long

52.7. 메시지 헤더

CamelBox. 접두사를 사용하는 생산자 끝점의 메시지 헤더에 모든 옵션을 제공할 수 있습니다.

52.8. 메시지 본문

모든 결과 메시지 본문은 Box Java SDK에서 제공하는 오브젝트를 활용합니다. 생산자 끝점 매개 변수는 inBody 엔드포인트 매개 변수에서 들어오는 메시지 본문에 대한 옵션 이름을 지정할 수 있습니다.

52.9. 구성 요소 구성 및 인증 활성화

Box를 사용한 인증의 경우 다음 예와 같이 구성 요소의 인증 속성을 설정합니다.

BoxConfiguration configuration = new BoxConfiguration();
configuration.setClientId("clientId");
configuration.setClientSecret("clientSecret");
configuration.setUserName("userName");
configuration.setUserPassword("userPassword");

// add BoxComponent to Camel context
BoxComponent component = new BoxComponent(context);
component.setConfiguration(configuration);
context.addComponent("box", component);
Copy to Clipboard Toggle word wrap

52.10. 샘플

다음 경로는 새 파일을 사용자의 루트 폴더에 업로드합니다.

from("file:...")
    .to("box://files/upload/inBody=fileUploadRequest");
Copy to Clipboard Toggle word wrap

다음 경로는 업데이트를 위해 사용자 계정을 폴링합니다.

from("box://events/listen?startingPosition=-1")
    .to("bean:blah");
Copy to Clipboard Toggle word wrap

다음 경로는 동적 헤더 옵션이 있는 생산자를 사용합니다. fileId 속성에는 Box 파일 ID가 있고 출력 속성에는 파일 콘텐츠의 출력 스트림이 있으므로 다음과 같이 CamelBox.fileId 헤더 및 CamelBox.output 헤더에 각각 할당됩니다.

from("direct:foo")
    .setHeader("CamelBox.fileId", header("fileId"))
    .setHeader("CamelBox.output", header("output"))
    .to("box://files/download")
    .to("file://...");
Copy to Clipboard Toggle word wrap

53장. Braintree 구성 요소

Camel 버전 2.17로 사용 가능

Braintree 구성 요소는 Java SDK 를 통해 Braintree Payments 에 대한 액세스를 제공합니다.

모든 클라이언트 애플리케이션은 지불을 처리하기 위해 API 자격 증명이 필요합니다. 계정과 함께 camel-braintree를 사용하려면 새 Sandbox 또는 Production 계정을 만들어야 합니다.

Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml에 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-braintree</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap

 

53.1. Braintree Options

Braintree 구성 요소는 아래 나열된 두 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

구성 (일반)

공유 구성을 사용하려면To use the shared configuration

 

BraintreeConfiguration

resolveProperty Placeholders (advanced)

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

Braintree 끝점은 URI 구문을 사용하여 구성됩니다.

braintree:apiName/methodName
Copy to Clipboard Toggle word wrap

다음 경로 및 쿼리 매개변수를 사용합니다.

53.1.1. 경로 매개 변수(2 매개변수):

Expand
이름설명기본값유형

apiName

떤 종류의 작업을 수행해야 합니까?

 

BraintreeApiName

methodName

선택한 작업에 사용할 하위 작업

 

문자열

53.1.2. 쿼리 매개변수(14 매개변수):

Expand
이름설명기본값유형

환경 (공용)

SANDBOX 또는 ProductION 환경

 

문자열

InBody (일반)

교환 In Body에서 전달할 매개 변수의 이름을 설정합니다.

 

문자열

memberId (일반)

Braintree에서 제공하는 판매자 ID입니다.

 

문자열

privateKey (common)

Braintree에서 제공하는 개인 키입니다.

 

문자열

publickey (공용)

Braintree에서 제공하는 공개 키입니다.

 

문자열

bridgeErrorHandler (consumer)

소비자를 Camel 라우팅 오류 처리기에 브리징할 수 있습니다. 이는 소비자가 들어오는 메시지를 선택하는 동안 예외가 발생한 것을 의미하며, 이제 메시지로 처리되어 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

false

boolean

예외 처리기 (consumer)

소비자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있는지 확인한 후 이 옵션은 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시되는 예외를 처리합니다.

 

ExceptionHandler

exchangePattern (consumer)

소비자가 교환을 생성할 때 교환 패턴을 설정합니다.

 

ExchangePattern

Access Token (advanced)

사용자를 대신하여 트랜잭션을 처리하기 위해 판매자가 부여한 액세스 토큰입니다. 환경, 판매자 ID, 공개 키 및 개인 키 필드 대신 사용됩니다.

 

문자열

httpReadTimeout (advanced)

http 호출에 대한 읽기 시간 제한을 설정합니다.

 

정수

synchronous (advanced)

동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우).

false

boolean

httpLogLevel (logging)

http 호출에 대한 로깅 수준을 설정하고 java.util.logging.Level을 참조하십시오.

 

문자열

proxyHost (proxy)

프록시 호스트

 

문자열

proxyPort (proxy)

프록시 포트

 

정수

53.2. Spring Boot Auto-Configuration

구성 요소는 아래 나열된 14 가지 옵션을 지원합니다.

Expand
이름설명기본값유형

camel.component.braintree.configuration.access-token

사용자를 대신하여 트랜잭션을 처리하기 위해 판매자가 부여한 액세스 토큰입니다. 환경, 판매자 ID, 공개 키 및 개인 키 필드 대신 사용됩니다.

 

문자열

camel.component.braintree.configuration.api-name

어떤 종류의 작업을 수행합니까?

 

BraintreeApiName

camel.component.braintree.configuration.environment

SANDBOX 또는 ProductION 환경

 

문자열

camel.component.braintree.configuration.http-log-level

http 호출에 대한 로깅 수준을 설정하고 java.util.logging.Level을 참조하십시오.

 

level

camel.component.braintree.configuration.http-log-name

http 호출을 기록하는 데 사용할 로그 카테고리 설정, 기본 "Braintree"

 

문자열

camel.component.braintree.configuration.http-read-timeout

http 호출에 대한 읽기 시간 제한을 설정합니다.

 

정수

camel.component.braintree.configuration.merchant-id

Braintree에서 제공하는 판매자 ID입니다.

 

문자열

camel.component.braintree.configuration.method-name

선택한 작업에 사용할 하위 작업

 

문자열

camel.component.braintree.configuration.private-key

Braintree에서 제공하는 개인 키입니다.

 

문자열

camel.component.braintree.configuration.proxy-host

프록시 호스트

 

문자열

camel.component.braintree.configuration.proxy-port

프록시 포트

 

정수

camel.component.braintree.configuration.public-key

Braintree에서 제공하는 공개 키입니다.

 

문자열

camel.component.braintree.enabled

braintree 구성 요소 활성화

true

부울

camel.component.braintree.resolve-property-placeholders

구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

부울

53.3. URI 형식

 

braintree://endpoint-prefix/endpoint?[options]
Copy to Clipboard Toggle word wrap

 

끝점 접두사는 다음 중 하나일 수 있습니다.

  • addOn
  • 주소
  • clientToken
  • creditCardverification
  • customer
  • discount
  • dispute
  • documentUpload
  • merchantAccount
  • paymentmethod
  • paymentmethodNonce
  • 계획
  • 보고서
  • settlementBatchSummary
  • subscription
  • Transaction
  • webhookNotification

 

53.4. BraintreeComponent

Braintree Component는 아래 옵션을 사용하여 구성할 수 있습니다. 이러한 옵션은 org.apache.camel.component.braintree.BraintreeConfiguration 유형의 구성 요소의 빈 속성 구성을 사용하여 제공할 수 있습니다.

Expand
옵션유형설명

환경

문자열

요청의 대상 위치를 지정하는 값 - 샌드박스 또는 프로덕션

merchantId

문자열

게이트웨이 계정의 고유 식별자이며, 이는 판매자 계정 ID와 다릅니다.

publicKey

문자열

사용자별 공용 식별자

privateKey

문자열

공유해서는 안 되는 사용자별 보안 식별자 - 저희와도 함께!

accessToken

문자열

Braintree Auth를 사용하여 판매자에게 부여된 토큰을 통해 다른 사용자를 대신하여 트랜잭션을 처리할 수 있습니다. 환경, 판매자Id, publicKey 및 privateKey 옵션 대신 사용됩니다.

위의 모든 옵션은 Braintree Payments에서 제공합니다.

53.5. 생산자 끝점:

생산자 엔드포인트는 엔드포인트 접두사 뒤에 다음에 설명된 끝점 이름 및 관련 옵션을 사용할 수 있습니다. 일부 엔드포인트에서는 단축 별칭을 사용할 수 있습니다. 엔드포인트 URI에는 접두사가 포함되어야 합니다.

필수가 아닌 엔드포인트 옵션은 []로 표시됩니다. 끝점에 대한 필수 옵션이 없는 경우 [] 옵션 세트 중 하나를 제공해야 합니다. 생산자 엔드포인트는 Camel Exchange In 메시지에 포함된 엔드포인트 옵션의 이름을 포함해야 하는 특수 옵션 inBody 를 사용할 수도 있습니다.

끝점 URI에서 또는 메시지 헤더에서 동적으로 끝점 옵션을 제공할 수 있습니다. 메시지 헤더 이름은 CamelBraintree.<option> 형식이어야 합니다. inBody 옵션은 메시지 헤더를 덮어씁니다. 즉 inBody=option 의 endpoint 옵션은 CamelBraintree.option 헤더를 재정의합니다.

엔드 포인트 및 옵션에 대한 자세한 내용은 Braintree 참조 ( https://developers.braintreepayments.com/reference/overview참조하십시오.

 

53.5.1. 끝점 접두사 애드온

다음과 같이 접두사 addOn 을 사용하여 다음 끝점을 호출할 수 있습니다.

 

braintree://addOn/endpoint
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

all

 

 

List<com.braintreegateway.Addon>

53.5.2. 끝점 접두사 주소

다음과 같이 접두사 주소 를 사용하여 다음 끝점을 호출할 수 있습니다.

 

braintree://address/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

create

 

customerId, request

com.braintreegateway.Result<com.braintreegateway.Address>

delete

 

customerId, id

com.braintreegateway.Result<com.braintreegateway.Address> 

find

 

customerId, id

com.braintreegateway.Address

update

 

customerId, id, request

com.braintreegateway.Result<com.braintreegateway.Address> 

주소의 URI 옵션

Expand
이름유형

customerId

문자열

요청

com.braintreegateway.AddressRequest

id

문자열

53.5.3. 끝점 접두사 clientToken

다음과 같이 접두사 clientToken 을 사용하여 다음 끝점을 호출할 수 있습니다.

 

braintree://clientToken/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

generate

 

 요청

문자열

clientToken의 URI 옵션

Expand
이름유형

요청

com.braintreegateway.ClientTokenrequest

53.5.4. 끝점 접두사 신용Verification

다음과 같이 접두사 creditCardverification 을 사용하여 다음 엔드포인트를 호출할 수 있습니다.

 

braintree://creditCardVerification/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

find

 

 id

com.braintreegateway.CreditCardVerification

search

 

query

com.braintreegateway.ResourceCollection<com.braintreegateway.CreditCardVerification>

신용 카드Verification에대한 URI 옵션

Expand
이름유형

id

문자열

query

com.braintreegateway.CreditCardVerificationSearchRequest

53.5.5. 끝점 접두사 고객

다음과 같이 접두사 customer 를 사용하여 다음 엔드포인트를 호출할 수 있습니다.

 

braintree://customer/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

all

 

 

 

create

 

요청

com.braintreegateway.Result<com.braintreegateway.Customer>

delete

 

id

com.braintreegateway.Result<com.braintreegateway.Customer>

find

 

id

com.braintreegateway.Customer

search

 

query

com.braintreegateway.ResourceCollection<com.braintreegateway.Customer>

update

 

ID, 요청

com.braintreegateway.Result<com.braintreegateway.Customer>

고객을 위한 URI 옵션

Expand
이름유형

id

문자열

요청

com.braintreegateway.CustomerRequest

query

com.braintreegateway.CustomerSearchRequest

53.5.6. 끝점 접두사 할인

다음과 같이 접두사 할인을 사용하여 다음 끝점을 호출할 수 있습니다. 

 

braintree://discount/endpoint
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

all

 

 

List<com.braintreegateway.Discount>

+
Copy to Clipboard Toggle word wrap
+
Copy to Clipboard Toggle word wrap

53.5.7. 끝점 접두사문제

다음과 같이 접두사 분쟁을 사용하여 다음 엔드포인트  호출할 수 있습니다.

braintree://dispute/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

accept

 

id

com.braintreegateway.Result

addFileEvidence

 

disputeId, documentId

com.braintreegateway.Result<DisputeEvidence>

addFileEvidence

 

disputeId, fileEvidenceRequest

com.braintreegateway.Result<DisputeEvidence>

addTextEvidence

 

disputeId, content

com.braintreegateway.Result<DisputeEvidence>

addTextEvidence

 

disputeId, textEvidenceRequest

com.braintreegateway.Result<DisputeEvidence>

종료일

 

id

com.braintreegateway.Result

find

 

id

com.braintreegateway.Dispute

removeEvidence

 

id

com.braintreegateway.Result

search

 

disputeSearchRequest

com.braintreegateway.PaginatedCollection<com.braintreegateway.Dispute>

분쟁 URI 옵션 

Expand
이름유형

id

문자열

disputeId

문자열

documentId

문자열

fileEvidenceRequest

com.braintreegateway.FileEvidenceRequest

내용

문자열

 

textEvidenceRequest

com.braintreegateway.TextEvidenceRequest

disputeSearchRequest

53.5.8. 끝점 접두사 documentUpload

다음과 같이 접두사 documentUpload 를 사용하여 다음 엔드포인트를 호출할 수 있습니다.

braintree://documentUpload/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

create

 

요청

com.braintreegateway.Result<com.braintreegateway.DocumentUpload>

documentUpload의 URI 옵션

Expand
이름유형

요청

com.braintreegateway.DocumentUploadRequest

53.5.9. 끝점 접두사manAccount

다음과 같이 접두사man Account를 사용하여 다음 엔드포인트를 호출할 수 있습니다.

 

braintree://merchantAccount/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

create

 

요청

com.braintreegateway.Result<com.braintreegateway.MerchantAccount>

createForCurrency

 

currencyRequest

com.braintreegateway.Result<com.braintreegateway.MerchantAccount>

find

 

id

com.braintreegateway.MerchantAccount

update

 

ID, 요청

com.braintreegateway.Result<com.braintreegateway.MerchantAccount>

판매 자Account에 대한URI 옵션

Expand
이름유형

id

문자열

요청

com.braintreegateway.MerchantAccountRequest

currencyRequest

com.braintreegateway.MerchantAccountCreateForCurrencyRequest

53.5.10. 끝점 접두사 paymentMethod

다음과 같이 접두사 paymentMethod 를 사용하여 다음 엔드포인트를 호출할 수 있습니다.

 

braintree://paymentMethod/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

create

 

요청

com.braintreegateway.Result<com.braintreegateway.PaymentMethod>

delete

 

token, deleteRequest

com.braintreegateway.Result<com.braintreegateway.PaymentMethod>

find

 

토큰

com.braintreegateway.PaymentMethod

update

 

토큰, 요청

com.braintreegateway.Result<com.braintreegateway.PaymentMethod>

paymentMethod의 URI 옵션

Expand
이름유형

토큰

문자열

요청

com.braintreegateway.PaymentMethodRequest

deleteRequest

com.braintreegateway.PaymentMethodDeleteRequest

53.5.11. 끝점 접두사 paymentMethodNonce

다음과 같이 접두사 paymentMethodNonce 를 사용하여 다음 엔드포인트를 호출할 수 있습니다.

 

braintree://paymentMethodNonce/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

create

 

paymentMethodToken

com.braintreegateway.Result<com.braintreegateway.PaymentMethodNonce>

find

 

paymentMethodNonce

com.braintreegateway.PaymentMethodNonce

paymentMethodNonce에 대한 URI 옵션

Expand
이름유형

paymentMethodToken

문자열

paymentMethodNonce

문자열

53.5.12. 끝점 접두사 계획

다음과 같이 접두사 계획 을 사용하여 다음 끝점을 호출할 수 있습니다.

 

braintree://plan/endpoint
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

all

 

 

List<com.braintreegateway.Plan>

53.5.13. 끝점 접두사 보고서

다음과 같이 접두사 보고서 를 사용하여 다음 끝점을 호출할 수 있습니다.

braintree://plan/report?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

transactionLevelFees

 

 요청

com.braintreegateway.Result<com.braintreegateway.TransactionLevelFeeReport>

보고서의 URI 옵션

Expand
이름유형

요청

com.braintreegateway.TransactionLevelFeeReportRequest

53.5.14. 끝점 접두사 OrderBatchSummary

다음과 같이 접두사 settleBatchSummary 를 사용하여 다음 엔드포인트를 호출할 수 있습니다.

 

braintree://settlementBatchSummary/endpoint?[options]
Copy to Clipboard Toggle word wrap
Expand
끝점단축 별칭옵션결과 본문 유형

generate

 

 요청

com.braintreegateway.Result<com.braintreegateway.SettlementBatchSummary>

Order BatchSummary에대한 URI 옵션

Expand
이름유형

settlementDate

일정

groupByCustomField

문자열