概述

Kafka的发送模式可以分为同步模式和异步模式,可以通过参数producer.type=sync和producer.type=async指定。

同步模式

producer.type设置为sync时为同步模式。
此时可以通过配置request.required.acks的值来指定确认机制,分别为

  • 0 : 不等待broker返回确认消息。
  • -1 : 等待topic中partition leader保存消息成功,并返回成功状态。
  • 1 : 等待topic中partition leader及所有replication 都保存消息成功,然后返回成功状态。

异步模式

producer.type设置为async时为同步模式。
此时可以通过配置如下四个参数用来调整发送状态

  • queue.buffering.max.ms : producer缓存消息的时间,比如设置成1000时,就会缓存1s的数据,然后将缓存的数据push到Kafka,这样可以极大的增加broker吞吐量,但也会造成时效性的降低。
  • queue.buffering.max.messages : producer缓存队列里最大缓存的消息数量,如果超过这个值,producer就会阻塞或者丢掉消息。
  • queue.enqueue.timeout.ms : 当达到queue.buffering.max.messages这个值时的处理策略。如果配置为0,则会将消息丢弃,如果配置为-1,producer则会阻塞。
  • batch.num.messages : 一个batch缓存的消息数量,达到这个数值时,producer才会发送消息。
Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐