Kafka常见面试题

如何防止消息丢失?

发送端:ack设置为-1或副本数,默认副本全部同步才会认为发送成功

接收端:对接收到的数据进行备份,定期进行检查对执行失败的数据重新执行;选择手动提交offset,对执行失败的数据不提交offset。

如何防止消息的重复消费?

在消费者端对数据进行幂等校验,禁止一定时间内出现相同含义的数据;或添加分布式锁。

如何做到顺序消费?

对获取到的数据进行再次排序

如何解决消息积压的问题?

1.添加新的消费者

2.在消费者中添加新的线程

3.验证消息的时效性,丢弃过期数据

如何实现延迟队列?

每隔一段时间消费数据,将当前时间与数据产生时间进行对比,小于延迟时间的不提交,并重新进入等待。

Kafka如何做到单机上百万的高吞吐量呢?

页面缓存技术:将数据缓存到系统的cache中,在刷新到磁盘当中

磁盘顺序写:按顺序写入磁盘

零拷贝技术:在cache中未查到数据,从磁盘获取加载到cache中后,不copy到Kafka进程中,而是由操作系统直接发送到网卡。

相关推荐
却道天凉_好个秋6 小时前
系统架构设计(九):分布式架构与微服务
分布式·架构·系统架构
predisw9 小时前
kafka connect 大概了解
分布式·kafka
计算机毕设定制辅导-无忧学长11 小时前
RabbitMQ 快速上手:安装配置与 HelloWorld 实践(二)
分布式·rabbitmq·ruby
啾啾Fun11 小时前
【Java微服务组件】分布式协调P1-数据共享中心简单设计与实现
java·分布式·微服务
梦想画家15 小时前
Scrapy进阶实践指南:从脚本运行到分布式爬取
分布式·scrapy·数据工程
东阳马生架构15 小时前
Seata源码—5.全局事务的创建与返回处理二
分布式·seata·分布式事务
张伯毅17 小时前
Flink SQL 将kafka topic的数据写到另外一个topic里面
sql·flink·kafka
掘金-我是哪吒17 小时前
分布式微服务系统架构第133集:运维服务器6年经验,高并发,大数据量系统
运维·服务器·分布式·微服务·系统架构
尘世壹俗人19 小时前
hadoop.proxyuser.代理用户.授信域 用来干什么的
大数据·hadoop·分布式
白露与泡影20 小时前
基于Mongodb的分布式文件存储实现
分布式·mongodb·wpf