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>
위의 예에서는 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 는 String 키와 Value 값이 배열 콘텐츠로 입력된 크기 2의 배열을 수신합니다.