20.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>
위의 예제에서는 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>
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>
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>
위의 예제에서 get 매개 변수는 하나의 매개 변수만 사용하므로 singleParameter
가 사용되고 getProcessor
는 Value 클래스를 본문에 직접 수신하는 반면 putProcessor
는 배열 콘텐츠로 채워진 문자열 키와 값 값이 있는 size 2 배열을 수신합니다.