20.3. 在 Camel 中使用 Avro RPC
如上述 Avro 所述,在多个传输上还提供 RPC 支持,如 http 和 netty。Camel 为这两个传输提供使用者和制作者。
avro:[transport]:[host]:[port][?options]
avro:[transport]:[host]:[port][?options]
支持的传输值目前为 http 或 netty。
从 2.12 开始,您可以在 URI 中指定消息名称:
avro:[transport]:[host]:[port][/messageName][?options]
avro:[transport]:[host]:[port][/messageName][?options]
对于消费者,您可以将多个路由附加到同一套接字。分配给正确的路由将自动由 avro 组件完成。没有指定 messageName 的路由(如果有)将用作默认值。
将 camel producer 用于 avro ipc 时,"in"消息正文需要包含 avro 协议中指定的操作的参数。响应将添加到"out"消息的正文中。
在对 avro ipc 使用 camel avro consumers 时,请求参数将放在创建的交换的"in"消息正文中,一旦交换处理"out"消息的正文将作为响应发送。
注: 默认情况下,消费者参数嵌套成数组。如果您只获得一个参数,因为 2.12 您可以使用 singleParameter URI 选项在"in"消息正文中接收它,且没有数组嵌套。