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等。
原文地址:https://www.cnblogs.com/set-cookie/p/8686234.html