面试题Kafka问题之Kafka【线上】积压消费如何解决

简介: 面试题Kafka问题之Kafka【线上】积压消费如何解决

问题一:Kafka如何保证数据不会丢失?


Kafka如何保证数据不会丢失?


参考回答:

• 生产者生产消息可以通过comfirm配置ack=all解决;

• Broker同步过程中leader宕机可以通过配置ISR副本+重试解决;

• 消费者丢失可以关闭自动提交offset功能,系统处理完成时提交offset。


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/628399



问题二:Kafka如何保证顺序消费?


Kafka如何保证顺序消费?


参考回答:

• 单 topic,单partition,单 consumer,单线程消费,吞吐量低,不推荐;

• 如只需保证单key有序,为每个key申请单独内存 queue,每个线程分别消费一个内存 queue 即可,这样就能保证单key(例如用户id、活动id)顺序性。


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/628398



问题三:Kafka【线上】如何解决积压消费?


Kafka【线上】如何解决积压消费?


参考回答:

• 修复consumer,使其具备消费能力,并且扩容N台;

• 写一个分发的程序,将Topic均匀分发到临时Topic中;

• 同时起N台consumer,消费不同的临时Topic。


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/628397



问题四:Kafka如何避免消息积压?


Kafka如何避免消息积压?


参考回答:

• 提高消费并行度

• 批量消费

• 减少组件IO的交互次数

• 优先级消费

if (maxOffset - curOffset > 100000) {  // TODO 消息堆积情况的优先处理逻辑  // 未处理的消息可以选择丢弃打日志  return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;}// TODO 正常消费过程return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/628401



问题五:如何设计Kafka消息队列?


如何设计Kafka消息队列?


参考回答:

需要支持快速水平扩容,broker+partition,partition放不同的机器上,增加机器时将数据根据topic做迁移,分布式需要考虑一致性、可用性、分区容错性

• 一致性:生产者的消息确认、消费者的幂等性、Broker的数据同步;

• 可用性:数据如何保证不丢不重、数据如何持久化、持久化时如何读写;

• 分区容错:采用何种选举机制、如何进行多副本同步;

• 海量数据:如何解决消息积压、海量Topic性能下降;

性能上,可以借鉴时间轮、零拷贝、IO多路复用、顺序读写、压缩批处理。


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/628402

目录
打赏
0
0
0
0
45
分享
相关文章
大厂面试高频:Kafka 工作原理 ( 详细图解 )
本文详细解析了 Kafka 的核心架构和实现原理,消息中间件是亿级互联网架构的基石,大厂面试高频,非常重要,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:Kafka 工作原理 ( 详细图解 )
招行面试:RocketMQ、Kafka、RabbitMQ,如何选型?
45岁资深架构师尼恩针对一线互联网企业面试题,特别是招商银行的高阶Java后端面试题,进行了系统化梳理。本文重点讲解如何根据应用场景选择合适的消息中间件(如RabbitMQ、RocketMQ和Kafka),并对比三者的性能、功能、可靠性和运维复杂度,帮助求职者在面试中充分展示技术实力,实现“offer直提”。此外,尼恩还提供了《尼恩Java面试宝典PDF》等资源,助力求职者提升架构、设计、开发水平,应对高并发、分布式系统的挑战。更多内容及技术圣经系列PDF,请关注【技术自由圈】获取。
大厂面试高频:Kafka、RocketMQ、RabbitMQ 的优劣势比较
本文深入探讨了消息队列的核心概念、应用场景及Kafka、RocketMQ、RabbitMQ的优劣势比较,大厂面试高频,必知必会,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:Kafka、RocketMQ、RabbitMQ 的优劣势比较
美团面试: Kafka为啥能实现 10Wtps 到100Wtps ?kafka 如何实现零复制 Zero-copy?
40岁老架构师尼恩分享了Kafka如何实现高性能的秘诀,包括零拷贝技术和顺序写。Kafka采用mmap和sendfile两种零拷贝技术,前者用于读写索引文件,后者用于向消费者发送消息,减少数据在用户空间和内核空间间的拷贝次数,提高数据传输效率。此外,Kafka通过顺序写日志文件,避免了磁盘寻道和旋转延迟,进一步提升了写入性能。尼恩还提供了系列技术文章和PDF资料,帮助读者深入理解这些技术,提升面试竞争力。
美团面试: Kafka为啥能实现 10Wtps 到100Wtps ?kafka 如何实现零复制 Zero-copy?
面试官:Kafka中的key有什么用?
面试官:Kafka中的key有什么用?
301 3
面试官:Kafka中的key有什么用?
面试题:Kafka如何保证高可用?有图有真相
面试题:Kafka如何保证高可用?有图有真相
249 0
kafka 的数据是放在磁盘上还是内存上,为什么速度会快?
Kafka的数据存储机制通过将数据同时写入磁盘和内存,确保高吞吐量与持久性。其日志文件按主题和分区组织,使用预写日志(WAL)保证数据持久性,并借助操作系统的页缓存加速读取。Kafka采用顺序I/O、零拷贝技术和批量处理优化性能,支持分区分段以实现并行处理。示例代码展示了如何使用KafkaProducer发送消息。
为什么说Kafka还不是完美的实时数据通道
【10月更文挑战第19天】Kafka 虽然作为数据通道被广泛应用,但在实时性、数据一致性、性能及管理方面存在局限。数据延迟受消息堆积和分区再平衡影响;数据一致性难以达到恰好一次;性能瓶颈在于网络和磁盘I/O;管理复杂性涉及集群配置与版本升级。
267 1
Flink-04 Flink Java 3分钟上手 FlinkKafkaConsumer消费Kafka数据 进行计算SingleOutputStreamOperatorDataStreamSource
Flink-04 Flink Java 3分钟上手 FlinkKafkaConsumer消费Kafka数据 进行计算SingleOutputStreamOperatorDataStreamSource
161 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等