前言
我们说 Kafka 是一个消息队列,其实更加确切的说:是 Broker 这个核心部件。为何这么说?你会发现我们可以通过控制台、 Java 代码、 C++ 代码、甚至是 Socket 向 Broker 写入消息,只要我们遵从了 Kafka 写入消息的协议,就可以将消息发送到 Kafka 队列中。
用专业一点的话术来说,Kafka 定义了一个应用层的网络协议,只要我们基于传输层构造出符合这个协议的数据,就是合法的 Kafka 消息。
所以说我们写入 Kafka 消息的只是一个生产者的客户端,他的形式多种多样,有 Java ,Python,C++ 等多种实现,那么我们每次发消息难道还需要自己去实现这套发送消息的协议么?显然 Kafka 官方已经考虑到这个问题了,为了给我们提供 开箱即用 的消息队列,官方已经帮我们写好了各种语言的优质生产者实现,例如我们今天要讨论的 Java 版本的实现。
个人基本情况:
首先介绍一下自己的个人基本情况,某专科学校毕业,计算机技术与应用专业,有过2年的工作经验,毕业以后一直想要进入一线互联网大厂工作,但无奈学历受限,屡屡被挡在门外。后来接触到一个朋友,了解到“霸面”,所以鼓起勇气去尝试了,挑战了一下蚂蚁金服,没想到经过4轮面试之后,居然拿到了offer,现特分享一下自己的面试真题,希望能够给你有所帮助。
一面真题
- 项目介绍
- 项目中如何保证数据一致性的
- 项目中存在的问题
- JVM内存
- 程序计算器的作用
- gc 算法,垃圾收集器
- Spring事务,事务的实现机制,如何保证事务的?
- 悲观锁、乐观锁
- HashMap
- 红黑树,B+树
- 死锁,如何防止死锁?
二面真题
二面之前做了一些题,做完题之后,二面围绕题目展开。
- 分布式事务的保证,具体的解决方案
- 接口的幂等性
- 如果向某个账户转账,在高并发的环境下,设计的接口有什么问题?
- 如何解决上述问题?
- 如果账户表很大,具有亿万级别,如何提高查询效率?
- 分库分表具体操作
- MySQL主从
- MySQL如何保证主从的数据一致性
- 数据库的容灾
三面真题
主要是项目介绍
项目一(支付营销系统):
- 介绍、架构、具体流程,如何压测?性能优化?机器扩容标准、线程池大小
- 平时用到的集合
- Hashmap
- Treeset的实现
- 分布式事务
- 秒杀系统
项目二(分布式调度系统):
- 项目具体情况、架构、设计思路
- Kafka消息可靠性保证
- 其他中间件
- 平时看什么书
四面(HR面)
- 自我介绍?
- 之前的工作给你带来了什么?
- 之前在工作者承担什么样的角色?
- 为什么想来蚂蚁金服?
- 自己有什么优势?
- 未来的职业规划是怎么样的?
- 期待薪资多少?
- 还有什么想问的?
面试准备+复习资料分享:
为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦,有需要的可以来找我获取哈
s://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**
[外链图片转存中…(img-ltNR6kZC-1618482429290)]