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 는 배열 콘텐츠로 채워진 크기 2 및 Value 값의 배열을 수신합니다.