springboot2.x +kafka使用和源码分析三(生产者配置)

上一章描述springboot支持对于topic进行配置管理,本章主要叙说springboot对于produce支持。

这里通过两种方式

第一种:由springboot框架来初始化基础bean,我们只需要在yml配置文件中编写配置即可。如下图所示(常规配置 具体所有配置可参考http://kafka.apache.org/documentation/ 的producer)

可参考进行配置属性:

spring.kafka:
    bootstrap-servers: localhost:9092
    client-id: test1
    ##以下配置可都在kafak 的config中 producer.properties 中找到对应
    producer:
      ##默认批次大小 默认0 关闭批提交 用于指定 ProducerBatch 可以复用内存区域的大小
      batch-size: 16384
      ##客户端id
      client-id: clientId
      ##key序列化器 需要实现org.apache.kafka.common.serialization.Serializer
      key-serializer:
      ##value序列化器 需要实现org.apache.kafka.common.serialization.Serializer
      value-serializer:
      ##ISR列表所有副本数据写入
      acks: -1
      ##是否压缩 实际上就是空间换时间 会加大影响时间 但降低存储空间 默认none 可设置 gzip snappy  lz4
      compression-type: none
      ##发生异常时重试次数
      retries: 0
      ##可自定义其它参数例如connections.max.idle.ms 多少秒关闭空闲连接
      properties:
        ##用来控制 KafkaProducer send 方法和partitionsFor()方法的阻塞时间。当生产者的发
        #送缓冲区己满,或者没有可用的元数据时 ,这些方法就会阻塞
        max.block.ms: 60000
        ##设置分区器
        partitioner.class:
        ##设置拦截器
        interceptor.classes:
        ##客户端即使在指定时间未被触发元数据更新也会进行强制更新 默认5min
        metadata.max.age.ms: 300000
        ##生产者将等待一定时间后再次发送
        ##作用是可以讲待发送的记录聚合在一起进行一次发送 减少网络开销但对于单条消息会加大响应时间 默认是0不延时
        ##可以在对于响应时间要求不高 但吞吐量高的场景中使用
        linger.ms: 0
        ##生产者默认发送单条消息的最大数 默认1m
        max.request.size=: 1048576
      ##生产者客户端中用于缓存消息的缓冲区大小 默认32m 如果生产者发送消息的速度超过发
      #送到服务器的速度 ,则会导致生产者空间不足(这时候需要适当进行调大),这个时候send就会进行阻塞 阻塞时间(max.block.ms)还未发送就会触发异常
      buffer-memory: 33554432

第二种:我们自定义初始化基础bean后交由框架管理(会有助于我们理解springboot对于kafka的支持)

话不多说直接上源码:

第一步:初始化配置

/**
 * 编写统一生产者配置类   
 * @author fangyuan
 */
@Configuration
public class KafkaProducerConfigure {
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值