美文网首页
面试常见问题汇总

面试常见问题汇总

作者: 幸好还年轻 | 来源:发表于2022-03-06 17:15 被阅读0次

    基础篇

    Nginx 作用是什么,为什么这么高效: 反向代理,主进程接收请求,工作进程异步非租塞的处理

    负载均衡算法有哪些:随机,轮询,加权随机,ip hash 等

    ng怎么解决惊群现象:加锁

    ng用的是什么实现多路复用:epoll,

    epoll的原理,底层数据结构,和其他多路复用对比的优点:红黑树,双链表,有点事没有限制连接数,也不会有用户态和内核态复制。

    水平触发和边缘触发区别。

    IO模型有哪些,阻塞和非租塞,同步和异步的区别是什么?

    TCP和UDP的区别

    TCP为什么是可靠的

    TCP三次握手和四次挥手流程和状态怎样的,为什么要三次握手 四次挥手 两次握手不行吗?

    timewait 表示什么意思 closewait表示什么状态  没有timewait可以吗,没有会出现什么问题

    TCP为什么可靠:应答模式 校验 拥塞控制,滑动窗口

    TCP有什么问题吗?

    拥塞控制算法有哪些,详细说明:慢启动,拥塞避免,快重传,快恢复。

    https和http的区别;

    https的建立连接过程;

    加密用的是什么加密;

    对称加密和非对称加密区别

    输入一个url比如 www.baidu.com发生了什么:域名解析:浏览器缓存-本地host-本地域名服务器缓存  --跟服务器域名解析-二级域名服务器解析。

    递归查询和迭代查询的区别:递归没有返回,迭代每次有返回 例如 浏览器缓存-本地host-本地域名缓存  是递归 ,-跟服务器域名解析-二级域名服务器解析-主机域名系统是迭代

    linux 查看端口号命令,其他常用命令

    进程 线程 协程区别;进程:资源分配的单位,独占内存空间,线程:CPU调度的基本单位,共享内存空间。协程:用户级别的线程,

    进程通信方式

    协程为什么这么快 :用户级线程 不消耗内核资源

    线程的状态有哪些:创建 就绪 运行 阻塞 结束

    常用限流方案有哪些:令牌桶和漏斗

    mysql:

    mysql存储引擎有那些,有什么特点

    InnoDB的特点有那些:行级锁,支持事物,支持外键,不支持全文索引

    mysql索引有哪些:主键索引,唯一索引,普通索引,多列索引

    mysql的事物有哪些特点:ACID

    事物的隔离级别有哪些,分别是怎么实现的,

    默认隔离级别是什么?

    幻读怎么解决的:记录锁和间隙锁

    锁加在什么地方:索引上

    索引结构是什么样的 ,为什么使用B+树:查询磁盘次数少,范围查询快

    聚族索引和非聚族索引的区别

    如何排查慢查询问题:查看执行计划

    什么情况下索引失效,

    什么叫回表查询

    一条SQL查询和读取的流程是什么样:

    查询:校验-缓存-sql解析器-sql优化器-存储引擎

    更新:先查询-更新-pre commit redo log - bin log -commit redo log (两阶段提交)

    如果bin log 写成功宕机会恢复吗?写失败呢?

    redo log 和undo log ,bin log分别有什么作用。

    mysql主从复制的原理:slave起两个线程:IO线程 和SQL线程,IO线程接收master发来的binlog ,写入delay log SQL线程重新执行。

    binlog 的模式有几种:row, statement,mixed

    mvcc怎么实现的。

    InnoDB特点:checkpoint,插入缓存(解决普通索引插入性能问题),两次写,异步IO(IO合并),自适应hash,刷新领近页

    两次写的流程,解决什么问题。 解决宕机磁盘页写失败的问题

    mysql的LRU算法是什么样的

    mysql主从延迟怎么解决: 更好的硬件,更多的slave 降低slave的压力,关闭slave的binlog等

    分库分表怎么实现:垂直分库分表和水平分库分表

    redis:

    redis数据类型

    redis为什么这么快

    redis数据类型的编码格式

    SDS和字符窜的区别:SDS会冗余分配空间,小于1m按照二倍的方式扩容,超过1m 每次多扩容1m

    redis的zset的底层结构:skiplist

    跳跃表和红黑树的区别,为什么不用红黑树:跳跃表简单,省空间 是和范围查询

    redis的持久化方式:RDB和AOF

    两种持久化方式的优缺点

    redis的删除策略:定时删除和懒删除

    redis的内存淘汰策略:8中,按照key的范围和算法来记,范围包括所有key和带有超时时间的key,算法有随机 LRU LFU,ttl,在加上不淘汰。

    redis 高可用方案:主从,哨兵 集群;分别有什么问题,主从不能实现宕机自动切换,哨兵可以切换但存在单点空间不足问题,集群解决了单点容量不足问题。

    redis集群最多一般多少个节点:1000,

    为什么分slot是16384个:从空间消耗和满足均匀分配上理解。

    主节点下线评判标准是什么:主观下线和客观下线

    哨兵主从切换的流程:选哨兵master节点,然后选redis master节点,原则是:优先级高的>事物ID较大的>服务ID小的

    一致性hash原理,解决什么问题,如果节点过少会导致什么问题,解决办法是什么:一致性hash解决分布式缓存扩容时数据迁移的问题,节点比较少导致所有key存到一个节点上,增加虚拟节点,类似于redis集群的slot。

    大key怎么解决

    热点key怎么解决:增加本地换粗

    缓存穿透,缓存击穿,缓存雪崩什么意思,怎么解决

    redis如何实现分布式锁

    kafka:

    kafak的使用场景

    kafka为什么这么快:并行写入,顺序写,磁盘缓存,0拷贝,压缩,合并发。

    0拷贝原理是什么。

    有哪些0拷贝方案:kafka使用的是那种 写入是mmap,消费是sendfile.

    mmap有哪些问题:一般有空间限制,1.5-2G 这也是rocketMQ 日志文件为1G的原因。

    kafka怎么保证可靠性:从producer ,broker,consumer三个角度去答。

    producer 提供ACK机制 0 1 -1;

    broker:实现灾难恢复。

    consumer:提供自动提交和手动提交。

    broker灾难恢复的原理:ISR HW保证性能和一致性的平衡。

    ISR OSR AR什么意思

    LEO什么意思。

    consumer在均衡什么时候发生:消费者数量变化,消费组监听的topic变化,partion增加。

    在均衡流程:先选coordinator,再选主consumer,再根据配置算法来做,(选举协调器的算法和选举consumer算法欢迎补充)

    算法有哪些:range, round robin,sticky。

    kafka怎么解决脑裂:epoch递增

    kafka怎么实现事物:(如果问这个你就问他你用kafka来实现了事物了吗)

    zookeeper:

    zk可以做什么?

    zk的节点类型有哪些

    zookeeper怎么实现可靠性:zab协议

    zab协议实现原理:原子广播协议和灾难恢复 ,原子广播是答两阶段提交,灾难恢复答选主流程。(zxid,serverID)

    zab怎么解决脑裂呢;epoch

    怎么实现不重复消费:我理解,手动提交加上标签

    分布式理论:

    CAP:CP,AP方案有哪些

    BASE

    两阶段提交 三阶段提交 TCC,最终一致性。

    算法:

    滑动窗口

    动态规划

    数据结构

    链表

    golang:

    golang特点,

    channel原理

    GMP模型,GP模型不行吗?

    垃圾回收原理:三色标记,

    三色标记解决什么问题:STW

    什么时候会造成对象错误回收:黑色标记应用白色标记,同事灰色标记断开白色标记的引用。

    怎么避免对象错误回收:写屏障和删屏障

    内存分配原理

    sync.map怎么实现线程安全的:读写分离

    defer的原理

    你对加班怎么看:答我爱工作

    很好,你要多少钱:答够吃就好,如果给一百万也不介意

    相关文章

      网友评论

          本文标题:面试常见问题汇总

          本文链接:https://www.haomeiwen.com/subject/akrwrrtx.html