zoukankan      html  css  js  c++  java
  • PRODUCER配置加载

    1.入口

    Kafka通过new一个KafkaProducer将配置项进行加载。将用户定义的properties作为参数,构造成一个ProducerConfig对象。

    public KafkaProducer(Properties properties) {
           //构造成ProducerConfig对象
            this(new ProducerConfig(properties), null, null);
        }
    

    2.ProducerConfig

    ProducerConfig保存的是生产者的全部配置项,这里包括用户自定义的和默认的配置项。实际上,ProducerConfig继承自AbstractConfig。其实生产者的配置最终会保存到AbstractConfig中。

    producerConfig

    3.ConfigDef

    ProucerConfig的构造函数中直接调用了父类即AbstractConfig的构造函数,并传入参数ConfigDef。这个ConfigDef作用是什么呢?ConfigDef在ProucerConfig的static块中进行初始化,ConfigDef通过一些列的链式操作将生产者的所有配置项(包括默认值、参数类型、校验器)报存在其叫做configKeys的map中。也就是说ConfigDef保存了所有的配置项的默认值

    configDef ## 4.AbstractConfig AbstractConfig接收ProducerConfig传来的ConfigDef和用户自定义的properties,遍历ConfigDef,并与自定义的properties比较,最终生成一个新的Map,用来保存用户定义后的所有配置项。 ## 5.KafkaProducer KafkaProducer通过ProducerConfig来初始化其各个属性,包括RecordAccumulator等。
  • 相关阅读:
    Array数组的使用
    map集合中取出分类优先级最高的类别名称
    关键字static介绍
    构造方法
    封装和private,this,super关键字的简单应用
    hitTest:withEvent:方法流程
    Events and Responder Chain
    block没那么难(一):block的实现
    [译] Block 小测验
    OAuth流程
  • 原文地址:https://www.cnblogs.com/set-cookie/p/8686234.html
Copyright © 2011-2022 走看看