方向介绍
基础课程
服务器包括数据结构与算法、操作系统原理、计算机网络、数据库原理等基础课程。
通用技术
服务器涉及网络编程、并发编程、并行计算、分布式计算和数据库设计等通用技术。
服务器架构
服务器架构多种多样,由简单到复杂,不同架构之间有一定关联和演变规律。
服务器由单个或者多个服务组成。根据架构设计,可以分为有状态和无状态两种服务。
三层架构
三层架构是服务基础架构,三层分别是网络层、逻辑层、持久层,而无状态服务没有持久层。
分布式架构
分布式架构与单体架构相反,涉及代理、路由、负载均衡等功能模块。
从横向扩展划分,分布式架构包含主主模式、主从模式、主备模式、哨兵模式、集群模式等。
从设计风格划分,分布式架构包含面向服务架构(SOA)、面向消息架构(MOA)、微服务架构、无服务架构、服务网格、超融合架构等。
IO模型
Windows
Windows有六种IO模型,分别是阻塞模型、选择模型、异步选择模型、事件选择模型、重叠模型(Overlapped)、完成端口模型(Completion Port, IOCP)。后五种模型API如下表所示:
- 选择模型:select
- 异步选择模型:WSAAsyncSelect
- 事件选择模型:WSACreateEvent、WSAEventSelect、WSAWaitForMultipleEvents
- 重叠模型:WSARecv、WSAWaitForMultipleEvents、WSAResetEvent、WSAGetOverlappedResult
- 完成端口模型:WSASocket、WSAAccept、WSARecv、CreateIoCompletionPort、GetQueuedCompletionStatus
Linux
Linux有五种IO模型,分别是阻塞式IO、非阻塞式IO、多路复用IO、信号驱动IO、异步IO。已知多路复用IO有select、poll和epoll。
并发模型
高性能程序需要提高程序负载能力,即提高程序并发量。因此出现不同的并发/并行计算模型,简称为并发模型。已知并发模型和对应框架如下表所示:
模型 | 框架 |
---|---|
Actor | skynet |
CSP | libgo |
Reactor | libevent |
Proactor | asio |