CDN技术架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.2 节点软件

节点软件在CDN系统中作为用户数据流的核心通道,包括从最开始用户流量的接入,到资源的缓存,再到未命中资源的回源拉取。核心通道上的各环节出现任意微小的问题,都将直接损害CDN用户的体验。节点软件的核心价值是在保证稳定、高性能的前提下,提供丰富的产品化功能及可编程能力的扩展。正是由于其核心链路通道的位置特点,节点软件具有如下功能:

● 提供高性能、稳定的接入网关,支持包括HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)、HTTP/2(HyperText Transfer Protocol 2.0)、QUIC(Quick UDP Internet Connection)等协议接入。

● 提供高性能、稳定的缓存服务,在NVMe(Non-VolatileMemoryexpress)、SSD(Solid State Disk)、SATA(Serial Advanced Technology Attachment)盘等不同硬件上实现不同的淘汰算法,最大限度地挖掘软件性能。

● 提供高性能、稳定的回源服务,在不同网络状况下保证回源的稳定性。

● 提供丰富的动态配置能力,降低软件变更频次,减少变更影响。

● 提供丰富的度量数据,用于业务性能的监控和计费。

在以上核心功能中,稳定和高性能是提供大规模服务能力的前提,丰富的产品化功能是满足海量用户需求的基础,可编程能力扩展是阿里云CDN节点软件的优势。

图2-4是参照阿里云CDN给出的节点软件示意图,主要分成接入网关、缓存组件、回源组件三大部分。

图2-4 节点软件示意图

随着互联网协议的不断迭代和升级,产生了用于解决安全性、性能、互动性等各方面问题的越来越多的网络协议。接入网关直接与用户交互,接收用户的请求,对不同的网络协议进行处理和卸载。同时,接入网关需要为用户提供限流、限速、防盗链等丰富的产品化功能。针对部分无法产品化的定制化需求,其还提供可编程扩展的能力,供用户自己实现定制化逻辑。

对于缓存组件而言,缓存资源的正确性是重中之重。通常用户可以接受一定概率的缓存丢失,但是无法接受缓存错误。缓存组件在保证全网资源正确性的基础上,通过优化不同介质上的热点迁移算法以最大限度地“榨取”硬件能力,并通过优化缓存淘汰算法来提升缓存命中率。同时缓存组件还需要提供丰富的刷新能力,用于不同场景下的资源更新需求。

回源组件面对的是多种多样的用户源站,并且传输链路在不稳定的公网上,所以需要回源组件在支持多种回源协议的基础上,在各种异常情况下有完备的源站健康检查和重试策略。此外,针对用户源站常见的鉴权需求、302跟随需求、增删回源头功能等,都需要提供产品化的解决方案。