前言
在大数据、高并发的系统中,为了突破瓶颈,会将系统进行水平扩展和垂直拆分,形成独立的服务。每个独立的服务背后,可能是一个集群在对外提供服务。这就会碰到一个问题,整个系统是由多个服务(子系统)组成的,数据需要在各个服务中不停流转。如果数据在各个子系统中传输时,速度过慢,就会形成瓶颈,降低整个系统的性能。从而就形成了以Kafka为中心的解决方案!
因为阅读Kafka源码重要性就不言而喻,今天小编就分享一份拼多多Kafka的源码笔记,现已面向大众全面开源!(为了不影响大家的阅读体验,免费获取方式放在了文末!)
这份笔记从Kafka的应用场景、源码环境搭建开始逐步深人,不仅介绍Kafka的核心概念,而且对Kafka生产者、消费者、服务端的源码进行深人的剖析,最后介绍Kafka常用的管理脚本实现,让读者不仅从宏观设计上了解Kafka,而且能够深人到Kafka的细节设计之中。在源码分析的过程中,还穿插了笔者工作积累的经验和对Kafka设计的理解,希望读者可以举一反三, 不仅知其然,而且知其所以然。
一面(技术面:算法+Redis+MySQL+网络)
- 给定m个不重复的字符 [a, b, c, d],以及一个长度为n的字符串tbcacbdata,问能否在这个字符串中找到一个长度为m的连续子串,使得这个子串刚好由上面m个字符组成,顺序无所谓,返回任意满足条件的一个子串的起始位置,未找到返回-1。比如上面这个例子,acbd,3。给定m个可能重复的字符[a, b, d, d]呢?
- 提供一个整型数组以及一个整数s,如果该数组中存在n个连续元素,且元素相加之和大于等于s,则返回满足该条件的连续元素的最小长度;否则返回0
- MySQL集群。假如集群出现延迟怎么处理。
- Redis的zset实现延时任务
- 设计题:如何设计tiny url
- 为什么要四次挥手
- HTTPS
- … …
第二天收到hr小姐姐的电话,约了面试时间
二面(项目+Redis+MySQL+kafka)
- 自我介绍
- 项目介绍
- K Group反转链表。写了栈和迭代两种实现方式,链表的题写起来真痛苦,很容易边界出错。
- Redis的持久化机制
- MySQL的隔离级别
- MySQL索引,聚簇索引和二级索引
- Redis高可用方案
- 介绍一些Kafka的一些概念
- Kafka如何保证消息有序
- …忘了
过了一天又收到hr小姐姐的电话,开心
三面(高并发+MySQL+网络)
- 自我介绍
- 项目介绍
- 第K大的数
- 设计题:秒杀系统
- MySql的索引优化
- HTTPS
- …忘了
hr面
- 为啥离职,怎么想的
- 介绍项目
- 怎么和团队的人沟通,和成员出现冲突时怎么解决。
- 期望薪资,你现在的薪资
总结头条面经
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
面试结束复盘查漏补缺
每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。
以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~
资料免费领取方式:点赞关注后,戳这里免费领取
重要的事说三遍,关注+关注+关注!
更多笔记分享
eG-1620988721906)]
[外链图片转存中…(img-WCvUwaga-1620988721908)]
更多笔记分享