CDN

有关于 Java 高性能中的 CDN Content Delivery Network

CDN

什么是 CDN

将 == 静态资源 == 分发到多个不同的地方以实现 == 就近访问 == ,进而加快静态资源的访问速度,减轻服务器以及带宽的负担。接入 CDN 的应用,当用户想要获得某个静态资源时会优先向最近的站点发送请求。

静态资源如何存储在 CDN 站点中

预热

在用户访问某些静态资源前,先将这些静态资源存入各个 CDN 站点中,那么用户初次访问时就可以通过 CDN 站点实现就近访问。

回源

如果用户在 CDN 站点没有访问到对应的静态资源,就会向源站点发送请求获得这个静态资源

刷新

如果静态资源更新,那么需要对各个 CDN 站点上的资源进行刷新

如何选择最合适的 CDN 站点

  1. 使用 GSLB (Global Server Load Balance) 全局负载均衡
    • GSLB 会根据请求的 IP 地址、CDN 节点状态(比如负载情况、性能、响应时间、带宽)等指标来综合判断具体返回哪一个 CDN 节点的地址。
    • GSLB 返回性能最好(通常距离请求地址最近)的 CDN 节点(边缘服务器,真正缓存内容的地方)的地址给浏览器。

CNAME (Canonical Name) 别名记录,是一种 DNS 记录类型,用于将一个域名别名指向另一个域名。它允许你将多个域名映射到同一个主机名,从而简化域名管理。

详细过程见下图 来自 JavaGuide

image-20240903204209470

防止盗刷

  • **Referer 防盗链 **HTTP 请求的头信息里面的 Referer 字段对请求进行限制
  • ** 时间戳防盗链 ** URL 通常会有两个参数一个是签名字符串,一个是过期时间