这是我参与「第三届青训营-后端场」笔记创作活动的的第6篇笔记.
一、网络接入
SDN:软件定义网络,同网段不一定要连在同一个物理交换机
二、网络传输
免费ARP:新加入网段的机器向其他机器通知自己的MAC地址,提高效率。IPv6也有类似的协议,新加入的向其他通知自己IP地址,还可以防止IP地址冲突。
ARP代理:劫持一个ARP包,A向B发送,代理通知A发给C,在SDN中常用
HTTP:多加了一层规矩,仍然是TCP,更容易使用
HTTPS:使用SSL/TLS加密,对称or非对称
三、网络提速
协议
HTTP2.0
并发下载,多路复用/stream(实际上是多个stream串行在一个tcp连接里,需要网络速度快)
HTTP3.0(QUIC)
有些协议不能换(比如tcp),那就直接换UDP
不能改内核Kernel,那就在用户态Userspace里改
0 RTT:双方通信的第一个数据包就携带有效数据信息
弱网环境友好
网络
数据中心分布
核心机房增加pop接入点,与互联网接触面积大
增设靠近用户的边缘机房
同运营商访问(国内)
用户使用某运营商的服务,访问其网络会比较快,跨运营商访问可能会速度慢丢包
智能解析用户ip确定其使用的运营商
路径优化
静态CDN
对于确定的数据,在靠近用户的机房(边缘机房)缓存
动态DSA
寻找从最近的机房到存放数据的机房的最优路径(各种算法)
四、网络稳定
容灾
故障发生->故障感知->自动切换->服务恢复
ep1 机房A与B交换数据可以使用专线,专线不可用的话就经过其他机房,或使用外网
ep2 调度容灾,机房A不可用了就把此条路径删掉,在确定B可以承载全部流量之后切换成B
ep3 云到端控制的调度容灾,在端里安装SDK;但是有些地方不能嵌入SDK(比如Web页面)
ep4 缓存降级,当一个资源不能访问,从缓存里调上一个版本
故障排查
故障明确->故障止损->分段排查
故障明确(有效沟通)
确定故障的是哪个业务和接口;故障体现在哪里;访问其他目标是否正常;是否是修改导致的异常,尝试回推
故障止损
先止损再排查
止损
查找系统容灾
不行就先回推前一个版本
分段排查
客户端排查:客户端访问其他服务/其他客户端访问目标服务
服务端排查:服务端监控和指标/手动访问/分组件排查
中间链路排查:服务端和客户端都没问题,查中间网络设备/旁路的DNS
故障预防
监控报警
故障演练/预案
故障降级/止损