flume笔记(二)之Agent内部原理

一.内部工作流程

  • 1.Source 接收数据。
  • 2.Channel Processor 处理事件。
  • 3.将数据事件传给链接器链 interceptor(拦截器),可以是一个或多个拦截器。
  • 4.经过拦截器后又把数据返回给 Channel Processor (Channel 处理器),然后再把这个数据传给 Channel Selector(选择器)。
  • 5.经过 Channel Selector(选择器)的选择策略处理之后,再将数据传给 Channel列表。因为可能有多个Channel 组成的Channel列表,所以要通过选择器的选择策略确定数据传给哪一个Channel 。
  • 6.根据选择器的选择结果,将数据事件写入相应的Channel中。
  • 7.Channel中的数据通过Sink Processor (Sink处理器) 的选择策略再将数据传给某一个sink。因为一个Channel可以绑定多个sink,所以Channel中的数据到底给sink1、sink2···。

二. Channel Selector

首先ChannelSelector的作用是将Event 数据传给哪一个Channel。其中它有两种选择策略,分别是 Replicating(复制)和 Multiplexing(多路复用)。

Replicating (复制):会将同一个 Event 数据发往所有的 Channel,每一个Channel都发一遍。(默认)
 

eg:a1.sources.r1.selector.type = replicating   (默认的写不写都可以)

 

▶ Multiplexing (多路复用):会根据相应的原则,将不同的 Event 发往不同的 Channel。

eg:a1.sources.r1.selector.type = multiplexing

三.Sink Processor

首先Sink Processor 共 有 三 种 类 型 , 分 别 是 DefaultSinkProcessor 、 LoadBalancingSinkProcessor 和 FailoverSinkProcessor

▶ DefaultSinkProcessor:对应的是单个的Sink。(默认)

▶  LoadBalancingSinkProcessor :对应的是Sink Group可以实现负载均衡的功能。
 
▶  FailoverSinkProcessor :对应的是Sink Group可以实现故障转移的功能。
 
原创文章 6 获赞 2 访问量 125

猜你喜欢

转载自blog.csdn.net/weixin_44604159/article/details/106050832