创作内容丰富的干货文章很费心力,感谢点过此文章的读者,点一个关注鼓励一下作者,激励他分享更多的精彩好文,谢谢大家!
把用户配置的Kafka Producer参数,赋值给Kafka Producer构造函数中userProvidedConfigs变量。获取clientId。获取用户配置的分区器。
获取用户配置的retry.backoff.ms,默认值100毫秒,该参数的意思是设置在重试发送消息之前等待的时间(以毫秒为单位)。当生产者发送消息到Kafka集群失败时,如果配置了重试(retries参数大于0),生产者会在每次重试前等待retry.backoff.ms配置的时间,然后再进行下一次重试。这个参数的存在目的是避免失败后立即重试导致无效操作和资源浪费。获得Key和Value的序列化器。设置拦截器。
初始化metadata,kafka设计ProducerMetadata的目的,是管理生产者与kafka集群元数据交互。这个类主要负责:集群元数据的存储、元数据的更新、错误处理和重试机制、线程安全性。
在构造ProducerMetadata对象时,有一个重要参数metadata.max.age.ms,默认值为300000毫秒,即5分钟。这个参数设置了元数据信息的最大存活时间(以毫秒为单位),一旦缓存的元数据信息的年龄超过了metadata.max.age.ms配置的值,生产者就会触发一次元数据的刷新操作,从kafka集群获取最新的元数据信息。
设置max.request.size,默认值1048576字节,即1MB。这个参数设置了生产者发送请求到kafka集群时,单个请求到最大大小(以字节为单位)。实际生产环境中可以把这个参数设置的空间用一条信息填满,也可以用一批消息填满。合理设置这个参数,可以控制生产者发送请求的大小,避免发送过大的消息导致网络传输或kafka集群处理上的性能问题。
设置buffer.memory,默认值33554432字节,即32MB。生产环境时,生产者的发送速度超过kafka集群的处理速度时,或者遇到网络问题导致消息受阻时,buffer.memory提供了一种机制来缓冲这些未发送的记录,从而避免生产者立即失败。
设置compression.type,默认值none,不使用压缩。用于设置生产者发送消息时使用的压缩类型,通过压缩消息,可以在传输前减小消息的大小,从而减少网络传输的开销和存储需求。