maronghe / todo-list

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TODOOOO-LIST

go基础:

  1. 数组和切片的区别 2020年06月16日22:01:39

  2. 协程同步的方式

  3. waitgroup和context区别

  4. 如何处理异常

  5. defer

  6. mutex & atomic ,锁用了哪些cpu指令

  7. map和sync.map,几sync.map的问题

  8. cxt

  9. make 和 new 区别

  10. 内存对齐

  11. Go的反射包怎么找到对应的方法

  12. DeepEqual是什么使用

  13. go 调度,并涉及到哪些系统调用

  14. go interface / iface / eface

  15. 闭包

  16. 协程、channel完美退出

  17. runtime实现

  18. 死锁条件检测,如何避免、锁的竞争检测

  19. go内存分配机制 -> mcentral和mcache

    (mcentral是服务所有系统线程,mcache为系统线程独享,mcache缺少span时去mcentral->mheap 中取???)

  20. go性能调优怎么做的?

  21. goroutine泄露

  22. gc 算法

  23. client如何实现长连接 tcp?

  24. go怎么从源码编译到二进制文件

  25. sql连接池

  26. pprof、火焰图

redis:

  1. 数据结构+哨兵+集群+主从同步+主从一致性
  2. 网络模型,存储模型
  3. 缓存穿透解决方案、击穿、雪崩
  4. 内存淘汰策略
  5. 解决的线上问题

mysql:

  1. 脏读、幻读、不可重复读、可重复读

  2. index redo undo mvcc

  3. 锁:行锁、表锁、间隙锁

  4. 为什么是B+而不是平衡二叉树

  5. 磁盘查找过程,从磁盘寻址,内存页管理

  6. 查询慢的原因

  7. MySQL的IO过高怎么查看,优化,分库分表及分区

  8. 主从同步,读写分离

  9. LSM Tree 和 B+ Tree对比

  10. myisam的索引结构

  11. 实际项目中进行了那些索引优化

  12. tidb???

  13. newsql???

操作系统:

  1. 守护进程是什么,怎么实现
  2. 进程间通信方式、线程间通信方式、协程间通信方式及相互的区别
  3. select、poll、epoll
  4. 说一下多路复用 http2、nio
  5. 孤儿进程,僵尸进程
  6. 进程虚拟空间分布,全局变量放哪里?
  7. 如何发送信号给一个进程
  8. 内存管理 & 为什么共享区效率最高
  9. cpu/内存飙高可能的原因

计算机网络及网络攻击:

  1. 输入url后涉及什么
  2. tcp 三次握手(半开连接队列、全开连接队列), 四次挥手(time_wait,close_wait,2msl)
  3. http header 干啥用的?
  4. TCP可靠性如何保证
  5. http 401,403 及大多响应码
  6. 粘包断包实现 -> negle算法
  7. udp 优缺点
  8. ddos、xss、csrf、固定token攻击
  9. tcp怎么找到哪个套接字

算法:

  1. 在1个10G大小的文件中,存储的都是int型的数据,如何在内存使用小于8M的情况下进行排序(大量数据)
  2. 查找一个字符串中最长的无重复字串 (DP)
  3. 在一个横向和纵向都是递增的有界二维坐标轴中,如何快速判断某个数是否存在于这个二维坐标中
  4. 各种排序的优缺点、是否稳定
  5. 判断二叉树是否为满二叉树
  6. 层次遍历二叉树,返回一个二维数组,每行表示一层
  7. 数据流,求中位数
  8. 最大非连续子数组的和
  9. https://github.com/greyireland/algorithm-pattern

etcd & raft:

  1. raft算法细节(选主 复制 脑裂 )

分布式:

  1. RPC相对于API调用的优缺点
  2. 分布式一致性、分布式事务
  3. 垂直拆分,水平拓展
  4. 分布式锁的特点
  5. 一致性hash
  6. 异地多活

nginx:

  1. nginx的负载均衡算法

linux性能优化:

  1. 怎么查看Linux服务器的负载,及判断哪些操作引起的负载过高
  2. 项目吞吐量,怎么优化的性能?

微服务

  1. 服务调度中心的感知与动态上下线
  2. 如何做服务发现(发布,订阅)、熔断、限流
  3. gRPC原理 HTTP2 (HPack) + Protocol buffer (压缩body)

开源项目:

  1. beego开源框架的源码

解决方案:

  1. 在面对未知的流量暴增,可以预先怎么处理
  2. 如何限流,限流算法
  3. 场景题: 某个下游服务的接口并发量大应该如何解决?
    1. 给出了一个复用资源(池)的思路,
    2. 追问:引入池后会出现哪些问题,如何预防?
  4. 打乱一个数组,不用rand
  5. 网络不可达如何排查,例如我当前打不开qq.com
  6. 大文件,小内存排序
  7. 程序并发受哪些因素影响。

设计题

  1. 以微博为例,有1个亿的用户,同时用户之间有关注和粉丝,用户的关注和取关操作比较频繁,如何设计架构和API接口
  2. 通用的http请求日志打印如何封装
  3. 实现消息队列(多生产者,多消费者) chan
  4. 设计一个kv存储
  5. LRU实现

其他:

  1. 工作有啥亮点?产出? 共识怎么做的?
  2. 项目代码回滚和rebase
  3. 怎么看一本书?

目前就这么多了...

About