网站动静加速架构 dcdn+ga 全站加速和全球加速api

# 背景概述

我们的公司专注于在香港提供服务,但面对的挑战是,我们的客户群体主要分布在中国内地。因此,国内用户访问香港服务时,不可避免地会遇到速度慢的问题。由于我们公司主要从事NFT业务,因此选择在香港提供服务是有其特定原因的。

# 加速策略

## 1.1 静态内容加速

静态内容加速指的是对静态文件,如HTML、JavaScript、CSS、图片等资源的快速分发。这种加速可以通过云服务提供商的CDN(内容分发网络)来实现,从而提升静态资源的加载速度。

## 1.2 动态内容加速

动态内容加速则涉及到实时数据的快速传输,也就是我们常说的API接口数据。由于API数据需要实时更新,无法预先缓存,因此我们的目标是提高API的响应速度。由于响应速度受到网络条件的影响,我们的策略是优化网络传输速度。

# 部署方案

我们选择了阿里云的全球加速产品(D CDN)作为我们的加速解决方案,因为我们所有的资源都托管在阿里云上。

# 架构设计

## 用户访问路径

我们的用户遍布全球,但以国内用户为主。

### 3.1 DNS解析

阿里云提供了智能DNS解析服务,这不仅能够加速域名解析速度,还能提升整体的访问效率。

### 3.2 D CDN接入

D CDN可以被视为阿里云在全球范围内的加速节点。全球有超过3200个节点,智能DNS会根据用户的地理位置选择最近的D CDN节点进行接入。

接入后,D CDN会根据算法计算出最优的回源路径,这条路径可能是阿里云内部网络,也可能是移动、电信或联通的网络,目标是找到最快的网络路径。

### 3.3 全球加速(GA)

D CDN之后是我们购买的全球加速服务(GA)。我们选择了香港和北京作为加速区域。D CDN找到最优路径后,会将流量回传至GA。

GA依托于阿里云强大的BGP网络,拥有自己的网络资源。

### 3.4 应用负载均衡(ALB)

GA回源到我们的ALB,ALB是动态的,能够提供更快的响应速度。最初,我们将Web应用防火墙(WAF)部署在ALB上,但后来为了优化成本和效率,我们将其调整到了D CDN上。

最初WAF部署在ALB时,大量攻击导致D CDN费用增加。因此,我们直接在D CDN上启用了WAF功能,从源头开始过滤攻击,这样既提高了效率,也节省了成本。

### 3.5 后端服务器

最终,流量会到达我们的内网服务器,服务器处理请求并返回数据。

# 总结

加速架构的选择多种多样,关键在于找到适合自己公司业务需求的方案。我们最初的设计并不完善,但通过不断的实践和调整,我们逐步优化了我们的加速架构。

![架构图](https://pic.it1024doc.com/cnblogs/202412/39bb132ff0c4e213fd0899a2ad60e8de.png)

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4438.html

(0)
LomuLomu
上一篇 2024 年 12 月 26 日
下一篇 2024 年 12 月 26 日

相关推荐

  • Bolt.new 30秒做了一个网站,还能自动部署,难道要吊打 Cursor?

    大家好,我是汤师爷~ 这篇聊聊 Bolt.new 和 Cursor 的对比。 Bolt.new 是一款基于 SaaS 的 AI 编码平台。它由 LLM 驱动的智能体作为底层,并结合 WebContainers 技术,让用户可以直接在浏览器中进行编码和运行。其主要优势包括: 支持前后端同时开发; 项目文件夹结构可视化; 环境自托管,自动安装依赖(如 Vite、…

    2025 年 1 月 11 日
    57600
  • 【Java】:lambda 表达式

    ![](https://pic.it1024doc.com/csdn/202412/71e03759762be38e9b71a6acff995d34.png) ### **1. 引言 🚀** 🔥 **Lambda** 表达式是Java在JDK8中引入的一项创新特性,它极大地简化了Java代码的编写,尤其是在处理集合遍历和操作时。Lambda表达式允许我们将函…

    未分类 2024 年 12 月 28 日
    64400
  • 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理

    目录 一、ThreadLocal基本知识回顾分析 (一)ThreadLocal原理 (二)既然ThreadLocalMap的key是弱引用,GC之后key是否为null? (三)ThreadLocal中的内存泄漏问题及JDK处理方法 (四)部分核心源码回顾 ThreadLocal.set()方法源码详解 ThreadLocalMap.get()方法详解 Th…

    2025 年 1 月 17 日
    70400
  • GreatSQL temp文件占用时长分析

    GreatSQL temp文件占用时长分析 GreatSQL DBA在日常工作中可能会遇到这种情况,存在一个 InnoDB 引擎下的 temp_x.ibt 文件很大,但是却无法确定这个文件是什么时间由哪个连接建立的,难以支撑后续定位问题,今天这篇文章彻底讲明白这个问题。 现象:发现一个实例下面(4406端口对外提供服务的实例)temp文件很大,如下所示: `…

    2025 年 1 月 10 日
    51900
  • Java项目构建:掌握Maven仓库的高效配置技巧

    Java项目构建:掌握Maven仓库的高效配置技巧 核心术语:Maven构建系统、资源库管理、组件依赖、项目构建工具、Java编程、优化方案、项目对象模型内容概述:本指南将系统讲解Maven资源库在Java项目构建中的高效配置方法。我们将从Maven资源库的基础架构开始,全面剖析本地资源库与云端资源库的运作机制,阐释依赖管理的核心原理,并配合具体示例演示如何…

    未分类 2025 年 5 月 13 日
    37300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信