Agent内部原理
- Replicating Channel Selector (default) :副本选择器 默认开启
- 将Source中的数据分发给所有的Channel
- Multiplexing Channel Selector:多路选择器
- 将数据有选择性的发给Channel
- 首先数据通Source进行接收,把数据封装到event中 从source向channel发
- 通过拦截器在Source与Channel中进行拦截
- 通过Interceptor拦截器将数据发给==Channel Selector ==选择器中
- 然后将event写入到channel缓冲区中
- 再将数据传输到SinkProcessor(Sink组)中
- 再由SinkProcessor以分组的形式将数据分给不同的Sink组中
- Flume Sink Processors:Sink组
- 在默认的Sink组中只接收一个Sink,一个Channel只能发给一个Sink
- Failover Sink Processor:故障转移Sink组(备胎)
- 按照Sink的优先级进行发送(故障转移)
- 首先定义一个Sink组
- 在定义有哪些Sink
- 把type换成failover
- 再设置优先级
- Load balancing Sink Processor:负载均衡
- 用于缓解单台机器的压力
- 原理:将channel发给多个Sink
- 将不同时间进入channel中的数据分批分组的发给Sink中
- type=load_balance
- selector:负载均衡策略 channel将数据有序发给Sink(robin:轮询 将数据 排队的分发给Sink中),无序分发(random),自定义类去分发(FQCN)
- backoff(退避算法:用来控制当某台Sink宕机时在第一次2的0次方秒内没有回应,就先向其他的Sink发送数据 ,等到了再次轮到他时 如果还在宕机 就在2的1次方秒后再次访问,以此往复 0 2 4 8 来实现对某台机器宕机时的一个测试 )
|