18.6. 例
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 以降、同じタスクを実行するため、2 つの異なるルートを設定できます。
<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 は 1 つのパラメーターのみを取り、single
Processor
は Value クラスをボディーで直接受信します。一方、putProcessor
は、String キーと Value 値が配列コンテンツとして設定されるサイズ 2 の配列を受け取ります。