最具影响力的数字化技术在线社区

168主编 发表于 2021-1-23 14:28:53

flume1.8 Channel类型介绍(四)

1. Flume ChannelChannels是events在agent上进行的存储库。Source添加events,Sink移除events。1.1 Memory Channel(内存Channels)events存储在配置最大大小的内存队列中。对于流量较高和由于agent故障而准备丢失数据的流程来说,这是一个理想的选择。https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103160457846-303049197.pnghttps://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103160533190-1196951413.pngagent a1示例:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103161034362-1585528277.png1.2 JDBC Channelevents存储在持久化存储库中(其背后是一个数据库)。JDBC channel目前支持嵌入式Derby。这是一个持续的channel,对于可恢复性非常重要的流程来说是理想的选择。https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103162110503-936686302.pngagent a1示例:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103162241174-649832100.png1.3 Kafka Channelevents存储在Kafka集群中。Kafka提供高可用性和高可靠性,所以当agent或者kafka broker 崩溃时,events能马上被其他sinks可用。Kafka channel可以被多个场景使用:
[*]Flume source和sink - 它为events提供可靠和高可用的channel
[*]Flume source和interceptor,但是没sink - 它允许写Flume evnets到Kafka topic
[*]Flume sink,但是没source - 这是一种低延迟,容错的方式从Kafka发送events到Flume sinks 例如 HDFS, HBase或者Solr
https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103164021987-1947637693.pnghttps://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103164100565-2004613262.pngagent a1示例:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103164230284-227561124.pngSecurity and Kafka Channel:省略...TLS and Kafka Channel:省略...Kerberos and Kafka Channel:省略...上述详情可以查看官网:http://flume.apache.org/FlumeUserGuide.html#kafka-channel或者flume1.8 使用指南学习感悟(一)、flume1.8 使用指南学习感悟(二)关于Kafka部分http://www.cnblogs.com/swordfall/p/8095213.html4.6.8 Kafka Sourcehttp://www.cnblogs.com/swordfall/p/8157766.html1.11 Kafka Sink 1.4 File Channelhttps://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103170031018-2017262202.pngagent a1示例:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103170300659-418454417.png1.5 Spillable Memory Channelevents存储在内存队列和磁盘中。该channel目前正在试验中,不要求在生产环境中使用。https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103170542128-1469892141.pngagent a1示例:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103170649815-224808449.png让内存channel队列使用失效,功能类似file channel:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103171104299-2013603359.png让磁盘溢出使用失效,功能类似in-memory channel:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103171312909-286260797.png1.6 Pseudo Transaction Channel注意:Pseudo Transaction Channel只用于单元测试,不用于生产环境使用。https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180103171535815-1842369411.png1.7 Custom Channel自定义channel是你实现Channel接口。当Flume agent启动时,一个自定义channel类和它依赖项必须包含在agent的classpath。https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180104005319659-2112006164.pngagent a1的示例:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180104005409299-1078527520.png2. Flume Channel Selectors如果类型没有指定,那么默认“replicating”。2.1 Replicating Channel Selector(default) (复制channel选择器) https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180104010021893-1689080940.pngagent a1和它的source 为 r1:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180104010128893-1504975780.png在上面的配置中,c3是一个可选性的channel。写event到c3出错将会被忽略。因为c1和c2没有标记为可选,写到这些channels失败将会导致事务提交失败。2.2 Multiplexing Channel Selector (多路复用Channel选择器)https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180104010723737-721295388.pngagent a1和它的source为r1:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180104010811299-1031798318.png2.3 Custom Channel Selector (自定义Channel选择器) 一个自定义channel选择器(selector)是实现ChannelSelector的接口。当Flume agent启动时,一个自定义channelselector类和它依赖项必须包含在agent的classpath。 https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180104011105753-465590946.pngagent a1和它的source为r1:https://images2017.cnblogs.com/blog/1217276/201801/1217276-20180104011141065-1012836352.png 参考资料:https://flume.apache.org/FlumeUserGuide.html
页: [1]
查看完整版本: flume1.8 Channel类型介绍(四)