LearningKafka学习笔记(四) - 18965050/learning-kafka GitHub Wiki


  • 生成者消息API
  • 基于Java的Kafka生产者
  • 自定义消息分区

  • producer会将消息发送到leader broker server,发送方式可在配置文件producer.properties中配置:
    • producer.type: 同步还是异步发送
    • queue.buffering.max.ms: 生产者缓存消息在自己队列的最大时间, 过了这个时间将会批次发送
    • queue.buffering.max.messages:生产者缓存消息在自己队列的最大批次条数, 过了这个条数将会批次发送
    • batch.num.messages: 批次最大数量

Java Producer API

  • kafka.javaapi.producer.Producer producer类方法
  • kafka.producer.KeyedMessage, 成员包括
    • topic: 主题
    • key: 分区key
    • message: 消息
  • kafka.producer.ProducerConfig,包括如下配置:
    • metadata.broker.list: broker集合列表. 注意域名配置情况下需要配置broker配置文件server.properties的配置项advertised.host.name
    • serializer.class:消息序列化编码类
    • request.required.acks: 同步方式(异步,同步还是完全同步. 参看下面说明)
  • kafka.producer.Partitioner: 分区接口为
    • public int partition(Object key, int a_numPartitions). 其中key表示分区key, a_numPartitions表示topic总分区数. 返回对应分区

Producer属性列表

producer属性列表1 producer属性列表2

⚠️ **GitHub.com Fallback** ⚠️