Flume Agent内部原理
1.Source对接数据源,负责封装Event;
2.然后发送给Channel Processor,Channel Processor调用事件拦截器链;
3.将每个事件给Channel Selector事件选择器,选择出要发送的事件;
4.将Channel Selector的结果写入相应的Channel;
5.若多个Sinks组从一个Channel中拉取数据,由SinkProcessor挑选Sinks组中的一个Sink去Channel中读取数据;即一个时刻只能有一个Sink从Channel中拉取数据;
重要组件:
1)ChannelSelectorChannelSelector的作用就是选出Event将要被发往哪个Channel。其共有两种类型,分别是Replicating(复制)和Multiplexing(多路复用)。ReplicatingSelector会将同一个Event发往所有的Channel,Multiplexing会根据相应的原则,将不同的Event发往不同的Channel。
2)SinkProcessorSinkProcessor共有三种类型,分别是DefaultSinkProcessor
LoadBalancingSinkProcessor和FailoverSinkProcessorDefaultSinkProcessor对应的是单个的Sink,LoadBalancingSinkProcessor和FailoverSinkProcessor对应的是Sink Group,LoadBalancingSinkProcessor可以实现负载均衡的功能,FailoverSinkProcessor可以实现故障转移的功能.