kafka集群的安装
kafka重要配置
kafka如何做到消息不丢失
1.kafka只对"已提交"消息做有限度的持久化保证
已提交:kafka若干个broker成功接收一条消息,并写入日志文件后,并告诉生产者此消息为已提交.其中若干可配置,acks=all,min.insync.replicas>1
有限度持久化保证:消息保存到n个broker时,至少一个broker是存活的,此条件成立,kafka保证此消息永远不会丢失
2.避免消息丢失
1)使用代用回调的发送消息方法producer,send(msg.callback),不使用producer.send(msg)发送消息,在callback中针对性处理kafka消息,设置retries值,当网络抖动导致提交失败时,自动重试
2)过早提交消费者端位移,应当先消费消息,再提交位移,而且应设置手动提交位移(enable.auto.commit=false),这种情况可能出现重复消费的问题
3)设置 unclean.leader.election.enable=false避免落后太多的broker被选举为leader造成的消息丢失
4)replication.factor >=3消息多拷贝几份
kafka一次消费
java接入kafka
spring接入kafka