后端开发知识图谱


前言

主要是记录一下作为后端开发需要了解的知识点,作为之后学习的参考。


一、基础编程

1.编程语言

主要是java、C#以及shell等。

2.网络基础

网络协议:TCP/IP、DNS、HTTP、HTTP2.0、HTTPS、SSL、NAT、SMTP等。
网络模型:Epoll、NIO、kqueue等。
序列化(二进制协议):Hessian、Protobuf。

3.数据结构

数组
链表
队列


哈希
树:二叉树、完全二叉树、平衡二叉树、红黑树、B树、B+树

高级数据结构:LSM tree、跳表

4.算法

分治算法
动态规划
贪心算法
回述
分支界定
排序、查找算法:选择排序、冒泡排序、插入排序、快速排序、归并排序、堆排序、计数排序、桶排序、基数排序、二分查找

5.操作系统

调度策略:进程调度、时间管理、内核同步、中断、系统调用【上下文切换】
内存管理:内核空间、用户空间、虚拟地址以及动态内存映射、缓存处理、【零拷贝】、【伪共享】
文件系统:虚拟文件系统、本地文件系统、buffer cache
计算机原理
进程
线程
协程
Linux

6.设计模式

23种常见设计模式
责任链模式
MVC
IOC
AOP
UML
微服务思想

7.设计思想和开发模式

DDD领域驱动设计
Actor模式
响应式编程

8.并发

多线程
线程安全
一致性、事务:事务ACID特性
多线程:事务隔离级别、MVCC、Spring事务传播级别
锁:Java中的锁和同步类、公平锁和非公平锁、悲观锁乐观锁CAS、ABS问题
CopyOnWrite容器、RingBuffer、可重入锁和不可重入锁

二、研发体系

1.持续集成Continuous Integration

Jenkins
环境分离:测试环境、集成环境、生产环境
文档管理
自动化测试

2.持续部署Continuous Deployment

灰度发布升级

3.持续运营Continuous Operation

可观测:日志、监控、链路追踪
自动化运维:Ansible、puppet、chef
APM
统计分析

4.测试

TDD理论
单元测试
压力测试
全链路压测
ABTest

5.项目管理

RUP
看板管理
SCRUM
极限编程
敏捷开发
结对编程


三、高流量高QPS

1.架构设计

高内聚
低耦合
削峰
可拓展
架构图
部署图
业务图
流程图

2.高性能

线程池
内存池
连接池
对象池
无锁化实现:CAS、RCU
响应式编程/Actor模式

3.高可用

柔性
容错容灾:硬件负载均衡、软件负载均衡、限流、应用层容灾、跨机房容灾、容灾演练、平滑慢启动、异地灾备、熔断
限流
过载保护
自动降级

4.弹性伸缩

水平扩缩容
垂直扩缩容
SET化部署

5.分布式设计

拓展性设计
服务治理:服务注册与发现、服务路由控制、服务健康检测、多注册中心
分布式一致:CAP与BASE理论、分布式锁、分布式一致性算法、幂等 、分布式一致方案、分布式Leader节点选举、TCC柔性事务、分布式事务
分布式文件系统
唯一ID生成:全局唯一ID、数据库主键自增、雪花算法、Redis自增
一致性Hash算法
数据分配与倾斜


四、基础设施

1.网络

网络架构:骨干网、城域网、BGP
网络传输加速:就近接入、代理&VPN、CDN、P2P

2.硬件基础设施

K8S容器化&虚拟机
数据中心的网络架构
网络硬件技术:RDMA、DPDK、SR_IOV
存储硬件:HDD、SSD、PMem、Tape、JBOD、RAID、SPDK
计算:GPU、ARM、SIMD

3.CDN

静态加速
流媒体传输

4.虚拟化

KVM:虚拟化
Xen
OpenVZ

5.容器技术

Docker/K8S:容器技术

6.网络文件系统

NFS
分布式文件系统

7.块存储

8.网关TGW/STGW


五、服务治理

1.服务注册与发现

Zookeeper
Consul
ETCD
Nacos
Eureka

2.配置中心

3.API Gateway

4.Service mesh

5.RPC开发框架

6.常用开源框架

开源协议
日志框架:Log4j、Log4j2、Logback
ORM
网络框架
Web框架
工具框架

7.RPC

Dubbo
Thrift
gRPC

8.日志和监控

日志搜集:ELK
跨链路追踪:
监控搜集:硬件监控 容器监控 应用监控 监控大盘 告警


六、存储

1.关系型数据库

Mysql:分库分表、主从复制、不停机进行分库分表操作流程
Postgresql:

2.非关系型数据库

KV数据库:Redis、Rocksdb
列存储数据库:Hbase、Cassandra、ClickHouse
文档型数据库:MongoDB
时许数据库:InflusDB、各类TSDB
搜索数据库:ElasticSearch、Solr、sphinx、Lucene
图数据库

3.对象存储

COS


七、中间件

1.WebServer

Nginx
OpenResty
ApacheHttp
Tomcat
Jetty

2.消息队列

消息总线
RabbitMQ
RocketMQ
ActiveMQ
Kafka
ZeroMQ
Redis消息推送

3.数据库中间件

ShardingJDBC


八、安全

1.密码学基础

伪随机数产生器(Cryptographically Secure Pseudo-Random Number Generator,简称CSPRNG)
密码散列函数(Cryptographic Hash Function)
对称/非对称加解密算法
消息认证码(Message Authentication Code)
数字签名(Digital Signature)
数字证书(Digital Certificate)
数字认证中心(Certificate Authority)

2. 3A体系

认证(Authentication)
授权(Authorization)
审计(Auditing)

3.应用安全防护

存储加密&传输加密
参数校验&预防注入

4.web安全

跨站脚本攻击XSS
CSRF
SQL注入
脚本注入
漏洞扫描工具
验证码

5.加密解密

对称加密
哈希算法
非对称加密

6.授权

RBAC
OAuth2.0


九、大数据

1.流式计算

Spark Streaming
Flink
Storm
KafkaStream
应用场景

2.OLAP

Hive
impala
clickhouse

3.Hadoop

HDFS
MapReduce
Yarn

4.数据挖掘与机器学习

聚类
分类
回归
深度学习
神经网络


总结

本文主要是介绍了后端开发需要了解的知识点,以供参考和学习

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值