Flume 在被拦截器截获之前复制通道

Flume 在被拦截器截获之前复制通道,flume,flume-ng,Flume,Flume Ng,我在用水槽做类似的事情 Source --> interceptor --> Channel --> multiplexing --> HDFS Sink |-----------> Null Sink 我想在源代码之后添加一个通道,但我不希望事件通过拦截器。我想参加“原始”活动。像这样: Source --> interceptor (i) --> Channel -

我在用水槽做类似的事情

Source --> interceptor --> Channel --> multiplexing --> HDFS Sink
                                          |-----------> Null Sink
我想在源代码之后添加一个通道,但我不希望事件通过拦截器。我想参加“原始”活动。像这样:

Source --> interceptor (i) --> Channel --> multiplexing --> HDFS Sink
    |                                     |-----------> Null Sink
    |-------> Channel (must no be intercepted by i) --> HDFS
我怎么做


谢谢

因为拦截器是针对每个源配置的,所以您必须添加第二个源(配置为完全没有拦截器,并在不同的Http端口中侦听),并发送两次数据:一个副本用于带有拦截器的源,另一个副本用于另一个源

另一种可能是连锁两个代理。第一个包含一个没有拦截器的源和两个接收器:一个用于持久化HDFS中的数据,另一个用于向已有的代理提供数据。我的意思是:

src-->ch-->multip-->sink----------->src-->int-->ch-->multip-->hdfssink
                |-->hdfssink                              |-->nullsink
(________agent1____________)        (_____________agent2_____________)

这正是我所做的。首先,我使用了两个卡夫卡的资料来阅读同一个主题,但我真的不喜欢这个解决方案。所以我使用了两个代理和一个Avro接收器/源来链接这两个代理。我很惊讶在被截获之前根本没有办法复制一个事件。我想知道为什么拦截器是按源配置的,而不是按通道配置的@纪尧姆我可以假设你使用了两个不同的消费者群体作为卡夫卡的来源吗?