深度分析:高并发系统架构设计原理,史上最全系列!

架构设计是一系列相关的抽象模式,是人们对一个结构内的元素及元素间关系的一种主观映射的产物。

一、计算机网络基础

A. OSI模型

OSI
Open System Interconnection,简称OSI模型或七层模型。
开放系统互连参考模型,是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。
OSI模型从低到高分别是:(1)物理层 (2)数据链路层 (3)网络层 (4)传输层 (5)会话层 (6)表示层 (7)应用层
1. 物理层
建立、维护、断开物理连接。
由底层网络定义协议。
2. 数据链路层
建立逻辑连接、进行硬件地址寻址、差错校验等功能。
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
由底层网络定义协议。
3. 网络层
进行逻辑地址寻址,实现不同网络之间的路径选择。
主要协议有:ICMP / IGMP / IP(IPV4, IPV6)。
ICMP
Internet Control Message Protocol,Internet控制报文协议,面向无连接的协议。
用于在IP主机、路由器之间传递控制信息(控制信息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息)。
IGMP
Internet Group Management Protocol,互联网组管理协议。
是TCP/IP协议族中负责IP组播成员管理的协议。
用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
IP
Internet Protocol,网际互连协议,根据端到端的设计原则。
IP只为主机提供一种无连接的、不可靠的、尽力而为的数据报传输服务。
4. 传输层
定义传输数据的协议端口号,以及流控和差错校验。
主要协议有:TCP / UDP。
TCP
Transmission Control Protocol,传输控制协议。
是一种面向连接的、可靠的、基于字节流的传输层通信协议。
UDP
User Datagram Protocol,用户数据报协议。
是一种无序建立连接就可以发送封装的IP数据包的方法。
5. 会话层
建立、管理、终止会话。
对应主机进程,指本地主机与远程主机正在进行的会话。
6. 表示层
数据的表示、安全、压缩。
主要格式有:JPEG / ASCII / EBCDIC / 加密格式。
JPEG
Joint Photographic Experts Group,联合图像专家组。
是用于连续色调静态图像压缩的一种标准,文件后缀名为 .jpg 或 .jpeg。
ASCII
American Standard Code for Information Interchange,美国信息交换标准代码。
是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其它西欧语言。
7. 应用层
网络服务与最终用户的一个接口
主要协议有:HTTP / FTP / TFTP / SMTP / SNMP / DNS / TELNET / HTTPS / POP3 / DHCP。
HTTP
HyperText Transfer Protocol,超文本传输协议,是因特网上应用最广泛的一种网络传输协议。
所有的WWW文件都必须遵守这个标准。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件、图片文件、查询结果等)。

HTTP工作原理:
HTTP协议工作于 客户端~服务端 架构上,浏览器作为HTTP客户端通过URL向HTTP服务端(即WEB服务器)发送请求。
WEB服务器根据接收到请求后,向客户端发送响应信息。
HTTP默认端口号为80,但是也可以改为8080或者其它端口。
FTP
File Transfer Protocol,文件传输协议,是TCP/IP协议族中的协议之一。
FTP协议包括两个组成部分,(1)FTP服务器 (2)FTP客户端。
其中FTP服务器用来存储文件。
用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。
TFTP
Trivial File Transfer Protocol,简单文件传输协议。
是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议。
提供不复杂、开销不大的文件传输服务,端口号为69。
SMTP
Simple Mail Transfer Protocol,简单邮件传输协议,是一种提供可靠且有效的电子邮件传输的协议。
SNMP
简单网络管理协议,是专门设计用于在IP网络管理网络节点(服务器、工作站、路由器、交换机等)。
DNS
Domain Name System,域名系统(服务)协议,是一种分布式网络目录服务。
主要用于域名与IP地址的相互转换,以及控制因特网的电子邮件的发生。
TELNET
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。
它为用户提供了在本地计算机上完成远程主机工作的能力。
HTTPS
Hyper Text Transfer Protocol over SecureSocket Layer,超文本传输安全协议。
是在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
它被广泛用于万维网上安全敏感的通讯(例如:交易支付等)。
POP3
Post Office Protocol – Version 3,邮局协议版本3,是TCP/IP协议族中的一员。
主要用于支持使用客户端远程管理在服务器上的电子邮件。
DHCP
Dynamic Host Configuration Protocol,动态主机配置协议,是一个局域网的网络协议。
指的是由服务器控制一段IP地址范围。
客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
B. TCP / IP 模型
TCP/IP 是一个四层协议系统。
TCP/IP模型从低到高分别是:(1)数据链路层 (2)网络层 (3)传输层 (4)应用层。
1. 数据链路层
对应OSI模型的物理层与数据链路层。
数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。
主要协议有:ARP / RARP。
ARP/RARP主要实现IP地址和机器物理地址(通常是MAC地址)之间的相互转换。
ARP
Address Resolve Protocol,地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。
RARP
ReverseAddress Resolve Protocol,反地址解析协议。
允许局域网的物理机器从网关服务器的ARP表或者缓存上请求其IP地址。
2. 网络层
对应OSI模型的网路层。
网络层实现数据包的选路和转发。
网络层的任务就是选择路由器,以确定两台主机之间的通信路径。
网路层最核心的协议是IP协议。
3. 传输层
对应OSI模型的传输层。
传输层为两台主机上的应用程序提供端到端(end to end)的通信。
传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。
主要协议有:TCP / UDP。
4. 应用层
对应OSI模型的会话层、表示层、应用层。
应用层负责处理应用程序的逻辑。

C. 网络基本概念

1. 局域网(Local Area Network(LAN))
局域网是指在某一区域内由多台计算机互联组成的计算机组。
局域网可以由一个办公室的两台计算机组成,也可以由一个公司内的几千台计算机组成。
局域网可以实现文件管理、应用软件共享、打印机共享、电子邮件、传真等功能。
2. 路由器(Router)
是连接两个或多个网络的硬件设备,在网络间起网关的作用。
路由器读取每一个数据包中的地址然后决定如何传送的专用智能型的网络设备。
路由器会根据信道的情况自动选择和设定路由、以最佳路径、按前后顺序发送信号。
3. 广播
主机之间“一对所有”的通讯模式。
网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(无论是否需要)。

例:有限电视网就是典型的广播型网络。
4. mac地址
指网卡的地址,每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位的二进制。
通常由12位16进制数表示(前6位是厂商编号,后6位是流水线号)。
5. IP地址 与 IP协议
规定网络地址的协议叫IP协议。
IP协议的作用主要有两个,一个是为每台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。
IP协议定义的地址称之为IP地址,广泛采用的是ipv4,由32位二进制表示。范围0.0.0.0 ~ 255.255.255.255。
6. 端口
一台拥有IP地址的主机所对应的不同服务。
通过不同的IP地址可以获取不同主机,通过“IP地址 + 端口号”来区分不同的服务。

例:WEB服务、FTP服务、SMTP服务,这些服务可以由一个IP地址来实现,但不同的服务则对应不同的端口。
7. 子网掩码
表示子网络特征的一个参数。
子网掩码不能单独存在,它必须结合IP地址一起使用。
子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

二、 高并发架构设计基本概念

A. 分布式系统
系统中的多个模块在不同服务器上的部署。
一组独立的计算机展现给用户的是一个统一的整体。

例:Tomcat与数据库分布部署在不同的服务器上。
B. 系统集群
一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务。
在集群中,多台服务器内容、工作过程等完全一样,客户端可以连接任意一个节点获得服务。
并且当集群中一个节点掉线时,其它节点可以自动的接替它继续提供服务。
C. 系统高可用性
通常来描述一个系统经过特殊的设计,从而减少停工时间,而保持其服务的高度可用性。
系统中部分服务器掉线时,其它服务器能够接替它继续提供服务,则可认为系统具有高可用性。
D. 负载均衡
将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行。
当客户端请求发送到系统时,通过某种算法把请求分发到多个可用的服务器上。
使系统中每个服务器都能够均匀的处理请求。
E. 代理
当客户端无法直接跟服务端发起请求的时候,就需要代理服务。代理分为:(1)正向代理 (2)反向代理
1. 正向代理
正向代理 是一台 位于客户端和目标服务器之间的 代理服务器。
当客户端需要获取目标服务器中的数据时、先向代理服务器发送请求并指定目标服务器。
由代理服务器向目标服务器发送请求获取数据、并将获取到的数据返回给客户端。
正向代理的作用
访问客户端不能访问的资源。
对客户端访问进行授权、认证。
可以做缓存,加速访问资源。
记录用户访问记录,对外隐藏用户信息。
2. 反向代理
反向代理 也是一台位于客户端和服务器之间的代理服务器。
但是客户端并不知道目标服务器,当客户端需要获取目标服务器中的数据时、先向代理服务器发送请求。
由代理服务器将请求转发给内部网络上的服务器,并将从目标服务器上获取到的数据返回给客户端。
反向代理的作用
保证内网的安全,阻止web攻击。
负载均衡࿰

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值