zoukankan      html  css  js  c++  java
  • flume1.8 Channel类型介绍(四)

    1. Flume Channel

    Channels是events在agent上进行的存储库。Source添加events,Sink移除events。

    1.1 Memory Channel(内存Channels)

    events存储在配置最大大小的内存队列中。对于流量较高和由于agent故障而准备丢失数据的流程来说,这是一个理想的选择。

    agent a1示例:

    1.2 JDBC Channel

    events存储在持久化存储库中(其背后是一个数据库)。JDBC channel目前支持嵌入式Derby。这是一个持续的channel,对于可恢复性非常重要的流程来说是理想的选择。

    agent a1示例:

    1.3 Kafka Channel

    events存储在Kafka集群中。Kafka提供高可用性和高可靠性,所以当agent或者kafka broker 崩溃时,events能马上被其他sinks可用。

    Kafka channel可以被多个场景使用:

    1. Flume source和sink - 它为events提供可靠和高可用的channel
    2. Flume source和interceptor,但是没sink - 它允许写Flume evnets到Kafka topic
    3. Flume sink,但是没source - 这是一种低延迟,容错的方式从Kafka发送events到Flume sinks 例如 HDFS, HBase或者Solr

    agent a1示例:

    Security 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.html  4.6.8 Kafka Source

    http://www.cnblogs.com/swordfall/p/8157766.html  1.11 Kafka Sink

     1.4 File Channel

    agent a1示例:

    1.5 Spillable Memory Channel

    events存储在内存队列和磁盘中。该channel目前正在试验中,不要求在生产环境中使用。

    agent a1示例:

    让内存channel队列使用失效,功能类似file channel:

    让磁盘溢出使用失效,功能类似in-memory channel:

    1.6 Pseudo Transaction Channel

    注意:Pseudo Transaction Channel只用于单元测试,不用于生产环境使用。

    1.7 Custom Channel

    自定义channel是你实现Channel接口。当Flume agent启动时,一个自定义channel类和它依赖项必须包含在agent的classpath。

    agent a1的示例:

    2. Flume Channel Selectors

    如果类型没有指定,那么默认“replicating”。

    2.1 Replicating Channel Selector(default) (复制channel选择器)

     

    agent a1和它的source 为 r1:

    在上面的配置中,c3是一个可选性的channel。写event到c3出错将会被忽略。因为c1和c2没有标记为可选,写到这些channels失败将会导致事务提交失败。

    2.2 Multiplexing Channel Selector (多路复用Channel选择器)

    agent a1和它的source为r1:

    2.3 Custom Channel Selector (自定义Channel选择器)

     一个自定义channel选择器(selector)是实现ChannelSelector的接口。当Flume agent启动时,一个自定义channel  selector类和它依赖项必须包含在agent的classpath。

     

    agent a1和它的source为r1:

     参考资料:

    https://flume.apache.org/FlumeUserGuide.html

  • 相关阅读:
    【并发编程】多线程并发最佳实践
    【并发编程】死锁
    【并发编程】【JDK源码】J.U.C--线程池
    【并发编程】【JDK源码】J.U.C--组件FutureTask、ForkJoin、BlockingQueue
    【JVM】关于类加载器准备阶段的一道面试题目
    【并发编程】【JDK源码】J.U.C--AQS 及其同步组件(2/2)
    【并发编程】线程安全策略
    JSP 9大内置对象详解
    Jquery中的bind(),live(),delegate(),on()绑定事件方式
    阻止事件冒泡
  • 原文地址:https://www.cnblogs.com/swordfall/p/8169554.html
Copyright © 2011-2022 走看看