342.4. RFC5424 Syslog 协议
从 Camel 2.14 开始提供
要公开 Syslog 侦听器服务,我们重复使用现有的 camel-mina 组件或 camel-netty,我们只使用 SyslogDataFormat
to marshal 和 unmarshal 消息
342.4.1. 公开 Syslog 侦听器
在 Spring XML 文件中,我们将端点配置为侦听端口 10514 的消息,请注意,在 netty 中,我们禁用 defaultCodec,此
将允许回退到 NettyTypeConverter,并将消息作为 InputStream 传递:
<camelContext id="myCamel" xmlns="http://camel.apache.org/schema/spring"> <dataFormats> <syslog id="mySyslog"/> </dataFormats> <route> <from uri="netty:udp://localhost:10514?sync=false&allowDefaultCodec=false"/> <unmarshal ref="mySyslog"/> <to uri="mock:stop1"/> </route> </camelContext>
使用 camel-mina的同一路由
<camelContext id="myCamel" xmlns="http://camel.apache.org/schema/spring"> <dataFormats> <syslog id="mySyslog"/> </dataFormats> <route> <from uri="mina:udp://localhost:10514"/> <unmarshal ref="mySyslog"/> <to uri="mock:stop1"/> </route> </camelContext>
342.4.2. 将 syslog 消息发送到远程目的地
<camelContext id="myCamel" xmlns="http://camel.apache.org/schema/spring"> <dataFormats> <syslog id="mySyslog"/> </dataFormats> <route> <from uri="direct:syslogMessages"/> <marshal ref="mySyslog"/> <to uri="mina:udp://remotehost:10514"/> </route> </camelContext>