首页 > 解决方案 > Apache Flume 在同一源上具有 2 个不同的拦截器

问题描述

我正在尝试在同一源上添加 2 个不同的拦截器,并将截获的数据发送到 2 个不同的通道。但是,我无法配置相同的。找不到任何相同的文档。另外,我对频道选择器有一些问题。不确定如何选择具有不同拦截器的通道。

到目前为止,这是我的代码:

a1.sources = syslog_udp
a1.channels = chan1 chan2
a1.sinks = sink1 sink2 //both are different kafka sinks


a1.sources.syslog_udp.type = syslogudp
a1.sources.syslog_udp.port = 514
a1.sources.syslog_udp.host = 0.0.0.0
a1.sources.syslog_udp.keepFields = true

a1.sources.syslog_udp.interceptors = i1 i2
a1.sources.syslog_udp.interceptors.i1.type = regex_filter
a1.sources.syslog_udp.interceptors.i1.regex = '<regex_string1>'
a1.sources.syslog_udp.interceptors.i1.excludeEvents = false

a1.sources.syslog_udp.interceptors.i2.type = regex_filter
a1.sources.syslog_udp.interceptors.i2.regex = '<regex_string1>'|'<regex_string2>'
a1.sources.syslog_udp.interceptors.i2.excludeEvents = false

a1.sources.syslog_udp.selector.type = multiplexing
a1.sources.syslog_udp.channels = chan1 chan2


a1.channels.chan1.type = memory
a1.channels.chan1.capacity = 200
a1.channels.chan2.type = memory
a1.channels.chan2.capacity = 200

标签: apacheselectorinterceptorflume

解决方案


似乎没有直接的设置。这种布局的解决方法是在一个代理中拥有一个/更宽的通道拦截器,将输出通过管道传输到 avro-sink 并为 avro-source 设置一个新代理并在其上设置新的通道拦截器.


推荐阅读