编程语言:
- C++ 20
- Python 3.10
- Go 1.18
- Java 8
- Rust
- Scala
日常工具:
- linux bash shell 命令: ip, netstat, tcpdump iptables ssh
- gdb dlv
- pprof grpof
- fiddler postman charles wireshark
代码管理:
- git
- gitlab
- github
- gitee
开发工具:
- vim
- vscode
- idea
- goland
- pycharm
编译器:
- gcc
- g++
- clang
- go build
- javac
包管理:
- maven
- gradle
- make
- cmake
- bazel
- blade
- conda
- go mod
软件架构:
- 分层
- 模块
- 设计模式 SOLID
- MVC
- AOP
- IOC
- TDD
- DDD
- 事件/消息中心
软件线程模型:
- 单线程
- 多线程 pthread
- 轮询
- 事件,消息驱动
- 单线程,协程, 生成器(generator) python
- 多线程,go routines, bthread
线程同步与竞争:
- 锁:lock mutex
- 读写锁
- 可重入锁
- 条件变量condition
- 信号量sema
服务器必须:
- 日志
- 监控打点
- 命令行参数
- 静态配置文件:python, lua, yaml, json, ini
- 动态配置下发
服务器架构:
- 微服务
- 单体
服务器框架:
- dubbo
- spring
- gin
- beego
- flask
- django
- grpc
服务器通信:
- 同一机器:共享内存,unix socket
- RPC
- grpc
- brpc
- HTTP
- HTTP/2.0
- TCP
- UDP
- 可靠UDP
通信协议报文格式:
- protobuf
- json
服务发现:
- ZK
- etcd
- consul
服务发布:
- gitlab CICD devops
- k8s
- docker
负载均衡:
4层: LVS
7层: NGINX
算法:
- random
- hash
- 一致hash
高可用:
- 主备,选主
- 集群对等无状态
数据高可靠:
- 复制集
- 同步、异步 binlog, WAL
- raft paxos
强一致:
- etcd
- zookeeper
- braft
数据库:
- mysql
- rocksdb
- tidb
- tikv
- tsdb
- mongodb
- redis
- postgreSQL
事务:
- 悲观锁
- 乐观锁mvcc
- 分布式事务,两阶段提交, 阿里TCC
消息队列:
- kafka
- rocketmq
安全认证:
- RBAC
- jwt
- https
- kerberos
- oauth2
日志收集:
- flume
- ES(elasticsearch)
监控告警:
- grafana
- tsdb
- prometheus
大数据:
- hadoop生态:
- hdfs
- hive
- hbase
- Oozie
- Azkaban
- spark
- flink
- clickhouse
游戏引擎:
- unreal
- unity
AI框架:
- tensorflow
- pytorch
编译:
编译前后端:
- flex/bison
- boost sprit
- antlr4
- LLVM
语言内嵌:
- C++中嵌入: python, java, lua
前端:
- HTML
- CSS/LESS
- JavaScript/TypeScript
- NodeJS
- VUE
- React
存储 SQL NoSQL BigData DataStructure Redis(codis) MongoDB MySQL InnoDB postgreSQL Hadoop HBase Hive Rocksdb TiDB 时序数据库(RED Tool, Graphite, Whisper;opentsdb, blueflood, kairosDB, incluxdb, prometheus) levedb ssdb ELK
计算 Algorithm Spark Flink TensorFlow 集群,多核,并行、并发,多线程,锁, 负载均衡
网络 HTTP RPC UDP TCP NAT
协议 JSON Protobuf
架构 微服务+中台 MVC+设计模式 RPC,服务注册与发现
前端客户端:Android+H5+bootstrap 游戏引擎(UE4 Unity)
语言:C/C++ python go java javascript HTML/CSS
服务发现:consul ZK ETCD
消息队列:RocketMQ, Kafka
大数据:hadoop spark flink
人工智能:tensorflow
1.思维导图
2.原理讲解
3.代码分析
4.代码实现
5.图表分析
6.docker环境
7.性能对比
8.面试题(已有+自创)
9.应用场景
2020.6.1
业务
游戏研发,游戏发行,各种游戏
电商,微信,短视频,推荐,搜索,云服务
新部门搭建
业务功能:
登录:
用户名密码验证码
手机号,验证码,动态码
第三方登录
指纹、刷脸登录
证书 HTTPS
0个人的数据
系统的数据
1个人的数据
永久:
K,V小数据:积分,设置,昵称,
K,List: 消息list, 文章list,我的好友,我的关注,关注我的人,购物车,历史记录,背包
支持翻页,搜索,分类
K,SortedList
临时:
临时活动,周期刷新
n个人的数据
K,V
K,List 商品list
K,SortedList 排行榜
K,Set匹配池,直播池