ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Kafka面试题及原理
[打印本页]
作者:
麻花痒
时间:
13 小时前
标题:
Kafka面试题及原理
1. 消息可靠性(不丢失)
使用Kafka在消息的收发过程都会出现消息丢失,Kafka分别给出了解决方案
生产者发送消息到Brocker丢失
消息在Brocker中存储丢失
消耗者从Brocker
幂等方案:【分布式锁、数据库锁(悲观锁、乐观锁)】
1.1 生产者发送消息到Brocker丢失
设置异步发送
1.2 消息在Brocker中存储丢失
1.3 消耗者从Brocker接收消息丢失
如果consumer(消耗者)挂掉,自动偏移量的错误可能会导致丢失或重复消耗数据
解决方案:禁用自动提交偏移量,改为手动
同步提交(阻塞)
异步提交(信息禁绝确)
同步+异步组合提交
2. 消息顺序性
应用场景:
即时消息中的单对单谈天和群聊,包管发送方消息发送顺序与接收方的顺序一致
充值转账两个渠道在同一个时间举行余额变更,短信通知必须要有顺序
问题缘故原由:
一个topic的数据可能存储在差别的分区中
,
每个分区都有一个按照顺序
的存储的偏移量,如果消耗者
关联了多个分区
则
不能包管顺序性
。
解决方案(
把消息存储在同一个分区下
):
发送消息时指定分区号
发送消息时按照雷同的业务设置雷同的key
3. 高可用机制
集群模式
分区备份机制
3.1 集群模式
3.2 分区备份机制
一个topic有多个分区,每个分区有多个副本,其中有一个leader,其余的是follower,副本存储在差别的broker中
所有的分区副本的内容是都是雷同的,如果leader发生故障时,会自动将其中一个follower提升为leader
过多的同步复制会降低效率(同步易阻塞),所以只设置较少的ISR
4. 数据清理机制
文件存储机制
数据清理机制
4.1 文件存储机制
Kafka中topic的数据存储在分区上,分区如果文件过大会分段存储segment
每个分段都在磁盘上以索引(xxxx.index)和日志文件(xxxx.log)的形式存储
分段的利益是,第一能够减少单个文件内容的巨细,查找数据方便,第二方便kafka举行日志清理。
4.2 数据清理机制
5. 高性能计划
消息分区:不受单台服务器的限制,可以不受限的处置惩罚更多的数据
顺序读写:磁盘顺序读写,提升读写效率
页缓存:把磁盘中的数据缓存到内存中,把对磁盘的访问变为对内存的访问
零拷贝:减少上下文切换及数据拷贝
消息压缩:减少磁盘IO和网络10
分批发送:将消息打包批量发送,减少网络开销
5.1 零拷贝
在开启拷贝读信息要拷贝4次(性能不高)
开启零拷贝(页缓存)后只拷贝两次
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4