Kafka Produce如何保证数据不丢失
概述Kafka的发送模式可以分为同步模式和异步模式,可以通过参数producer.type=sync和producer.type=async指定。同步模式producer.type设置为sync时为同步模式。此时可以通过配置request.required.acks的值来指定确认机制,分别为0 : 不等待broker返回确认消息。-1 : 等待topic中partition lead...
·
概述
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才会发送消息。
更多推荐
已为社区贡献2条内容
所有评论(0)