消息丢失
broker
-
replication.factor,指定topic 副本数量 > 3 -
unclean.leader.election.enable=false,禁止ISR中落后太多的副本成为leader,默认为false -
min.insync.replicas,当生产者设置acks=all时,必须满足此配置的写入副本数量消息才算发送成功,确保replication.factor>min.insync.replicas,典型的例子是replication.factor=3,min.insync.replicas=21 2
#min.insync.replicas 在创建完topic后使用脚本配置 $./bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --entity-type topics --entity-name topic-name --add-config min.insync.replicas=2
producer
acks=all/-1,min.insync.replicas数量的副本写入成功才算成功retries> 0,消息发送重试次数- 发送消息时要确认是否发送成功,使用带有回调的send,producer.send(msg, callback)
consumer
- 位移提交要注意,事前提交会丢失