211 本科面试阿里挂了:分布式 + 限流 + 通讯 + 数据库被问懵了!
阿里面试到底有多难?这对于没有过大厂面试经历的人来说,是很难现象的,所谓“面试造火箭,工作拧螺丝”用来形容阿里面试就再合适不过了。下面分享一位贴主的阿里面经,这次面试的是阿里菜鸟网络,毕业于某 211 本科,但这次面试还是失利,3 面被分布式问懵:限流、通讯、数据库一个都没有落下。
以下菜鸟网络面试题(含答案),以及分布式面试专题资料文档,关注我添加 VX:MXW5308 即可免费领取!
阿里菜鸟网络,3 面面试题
http 协议转 dubbo 协议怎么做的?
dubbo 的架构设计说一下
mq 通知时,消费者没消费到怎么办?
redis 是单线程了吗?有什么好处?
一般设置过期时间吗?业务场景有哪些?过期策略有哪些?
redis 持久化了解下你们线上怎么用的
你们线上为什么这么用?只用 AOF 行不行
抽象类和接口你倾向用哪个?什么场景下用抽象类
如何更好地实现一个单例
synchronized 和 lock 区别
公平锁和非公平锁
怎么实现自定注解
类加载机制
如何实现自己的 classloader?
如何动态加载类
如何触发 full gc
用 jvm 命令如何触发
为什么需要分布式系统?
Memcache 与 Redis 的区别都有哪些?
Redis 相比 Memcached 有哪些优势?
如何实现本地缓存?请描述-一下你知道的方式
Redis 通讯协议是什么?有什么特点?
阿里菜鸟网络挂了之后,算是意识到自己的不足,所以回来之后就恶补了分布式相关的面试知识点,以下就是自己整理的一些分布式面试专题,包括限流、通讯、数据库三个部分,每个部分的每个小专题都清晰的答案解析,需要完整文档版的,关注我添加 VX:MXW5308 免费领取!
分布式限流面试专题系列
01 ZooKeeper 面试专题
ZooKeeper 是什么?
ZooKeeper 提供了什么?
ZooKeeper 文件系统
四种类型的 znode
Zookeeper 通知机制
Zookeeper 做了什么?
zk 的命名服务(文件系统)
zk 的配置管理(文件系统、通知机制)
ZooKeeper 集群管理(文件系统、通知机制)
ZooKeeper 分布式锁(文件系统、通知机制)
获取分布式锁的流程
ZooKeeper 队列管理(文件系统、通知机制)
ZooKeeper 数据复制
ZooKeeper 工作原理
ZooKeeper 是如何保证事务的顺序一致性的?
ZooKeeper 下 Server 工作状态
ZooKeeper 是如何选取主 leader 的?
......
ZooKeeper 面试专题答案
02 Nginx 面试专题
请解释一下什么是 Nginx?
请列举 Nginx 的一些特性。
请列举 Nginx 和 Apache 之间的不同点
请解释 Nginx 如何处理 HTTP 请求。
在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
使用“反向代理服务器”的优点是什么?
请列举 Nginx 服务器的最佳用途
请解释 Nginx 服务器上的 Master 和 Worker 进程分别是什么?
请解释你如何通过不同于 80 的端口开启 Nginx?
请解释是否有可能将 Nginx 的错误替换为 502 错误、503?
在 Nginx 中,解释如何在 URL 中保留双斜线?
请解释 ngx_http_upstream_module 的作用是什么?
请解释什么是 C10K 问题?
请陈述 stub_status 和 sub_filter 指令的作用是什么?
解释 Nginx 是否支持将请求压缩到上游?
解释如何在 Nginx 中获得当前的时间?
用 Nginx 服务器解释-s 的目的是什么?
解释如何在 Nginx 服务器上添加模块?
Nginx 面试专题答案:
分布式通讯面试专题系列
01 RabbitMQ 消息中间件面试专题
RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?
RAM node 和 disk node 的区别?
RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
RabbitMQ 概念里的 channel、exchange 和 queue 这些东东是逻辑概念,还是对应着进程实体?这些东东分别起什么作用?
vhost 是什么?起什么作用?
在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange ,以及进行 binding 会有什么不同?
客户端连接到 cluster 中的任意 node 上是否都能正常工作?
若 cluster 中拥有某个 queue 的 owner node 失效了,且该 queue 被声明具有 durable 属性,是否能够成功从其他 node 上重新声明该 queue ?
cluster 中 node 得失效会对 consumer 产生什么影响?若是在 cluster 中创建了 mirrored queue ,这时 node 失效会对 consumer 产生什么影响?
能够在地理上分开的不同数据中心使用 RabbitMQ cluster 么?
为什么 heavy RPC 的使用场景下不建议采用 disk node ?
向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行 consume 动作会发生什么?
routing_key 和 binding_key 的最大长度是多少?
RabbitMQ 允许发送的 message 最大可达多大?
什么情况下 producer 不主动创建 queue 是安全的?
RabbitMQ 消息中间件面试专题答案:
02 ActiveMQ 消息中间件面试专题
什么是 ActiveMQ?
ActiveMQ 服务器宕机怎么办?
丢消息怎么办?
持久化消息非常慢。
消息的不均匀消费。
死神队列。
ActiveMQ 中的消息重发时间间隔和重发次数吗?
ActiveMQ 消息中间件面试专题答案:
03 Kafka 面试专题
Kafka 的设计时什么样的呢?
数据传输的事物定义有哪三种?
Kafka 判断一个节点是否还活着有那两个条件?
producer 是否直接将数据发送到 broker 的 leader(主节点)?
Kafa consumer 是否可以消费指定分区消息?
Kafka 消息是采用 Pull 模式,还是 Push 模式?
Kafka 存储在硬盘上的消息格式是什么?
Kafka 高效文件存储设计特点
Kafka 与传统消息系统之间有三个关键区别
Kafka 创建 Topic 是如何将分区放置到不同的 Broker 中
Kafka 新建的分区会在哪个目录下创建
partition 的数据如何保存到硬盘
kafka 的 ack 机制
Kafka 的消费者如何消费数据
消费者负载均衡策略
数据有序
Kafka 面试专题答案:
分布式数据库面试专题系列
01 Redis 面试专题
redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的 memcached 效率要高?
redis 主从复制如何实现的?redis 的集群模式如何实现?redis 的 key 是如何寻址的?
使用 redis 如何设计分布式锁?说一下实现思路?使用 zk 可以吗?如何实现?这两种有什么区别?
知道 redis 的持久化吗?底层如何实现的?有什么优点缺点?
redis 过期策略都有哪些?LRU 算法知道吗?写一下 java 代码实现?
缓存穿透、缓存击穿、缓存雪崩解决方案?
在选择缓存时,什么时候选择 redis,什么时候选择 memcached
缓存与数据库不一致怎么办
主从数据库不一致如何解决
Redis 常见的性能问题和解决方案
Redis 的数据淘汰策略有哪些
Redis 当中有哪些数据结构
Redis 面试专题答案:
02 MongoDB 面试专题
你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用 NoSQL 数据库?说一说 NoSQL 数据库的几个优点?
NoSQL 数据库有哪些类型?
MySQL 与 MongoDB 之间最基本的差别是什么?
你怎么比较 MongoDB、CouchDB 及 CouchBase?
MongoDB 成为最好 NoSQL 数据库的原因是什么?
32 位系统上有什么细微差别?
journal 回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
分析器在 MongoDB 中的作用是什么?
名字空间(namespace)是什么?
如果用户移除对象的属性,该属性是否从存储层中删除?
能否使用日志特征进行安全备份?
允许空值 null 吗?
更新操作立刻 fsync 到磁盘?
如何执行事务/加锁?
为什么我的数据文件如此庞大?
启用备份故障恢复需要多久?
MongoDB 面试题答案:
03 memcached 面试专题
memcached 是怎么工作的?
memcached 最大的优势是什么?
memcached 和 MySQL 的 query cache 相比,有什么优缺点?
memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优缺点?
memcached 的 cache 机制是怎样的?
memcached 如何实现冗余机制?
memcached 如何处理容错的?
如何将 memcached 中 item 批量导入导出?
我需要把 memcached 中的 item 批量导出导入,怎么办?
memcached 是如何做身份验证的?
memcached 的多线程是什么?如何使用它们?
memcached 能接受的 key 的最大长度是多少?
memcached 对 item 的过期时间有什么限制?
memcached 最大能存储多大的单个 item?
为什么单个 item 的大小被限制在 1M byte 之内?
memcached 面试专题答案:
写在最后
面试既是机会,也是成长的积累,可以变得更优秀。所以,一旦我们处于面试失败的窘境,就要尽快消除负面情绪,振作起来,找到问题所在,拿到心仪的 offer。
除了以上整理的分布式相关的面试题,还有 Spring、MySQL、Mybatis 等各种面试专题,需要全部打包带走的朋友,关注我添加 VX:MXW5308 免费领取!
版权声明: 本文为 InfoQ 作者【码农之家】的原创文章。
原文链接:【http://xie.infoq.cn/article/36e5c3417a2996fdf911bf140】。文章转载请联系作者。
评论