网站动静加速架构 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 日

相关推荐

  • Java StampedLock:实现原理与最佳实践

    Java StampedLock:实现原理与最佳实践 1. 引言 2. StampedLock概述 2.1 什么是StampedLock? 2.2 核心特性 3. StampedLock的三种模式详解 3.1 写锁(Write Lock) 3.2 悲观读锁(Pessimistic Read Lock) 3.3 乐观读(Optimistic Read) 4. …

    2025 年 1 月 6 日
    38300
  • 交易系统:退款单模型设计详解

    大家好,我是汤师爷~ 和退款单作为整个交易逆向系统的核心,支撑着售后管理环节。 售后域核心概念模型 1、退款单 退款单是记录和跟踪退款处理过程的核心业务单据,包含以下关键信息: 租户ID:标识所属商户或组织 退款单ID:退款单的唯一标识 原订单ID:关联的原始订单 业务类型:仅退款、退货退款等 退款类型:如全额退款、部分退款、按商品退款等 创建时间:退款单生…

    2024 年 12 月 30 日
    47600
  • 【Java】异常处理见解,了解,进阶到熟练掌握

    各位读者,早安、午安、晚安! 如果您发现这篇文章对您有所启发,不妨点赞、评论、分享,您的支持是我不断进步的动力。也欢迎您将这篇文章推荐给更多人。 今天我们将深入探讨Java面向对象编程中的抽象类和接口,让我们一起来看看它们是如何协同工作的。 目录 1.(throws和throw)我们选择忽略这个异常,将其向外抛出 1.1:使用throws时的注意事项 1.2…

    2024 年 12 月 28 日
    30600
  • 解决Spring Boot中’factoryBeanObjectType’属性类型不匹配问题的方案

    问题背景 在Spring Boot应用开发过程中,执行单元测试时可能会遇到一个棘手的类型转换异常。本文详细记录了该问题的排查过程,若您仅关注解决方案,可直接跳转至文末处理步骤。运行环境:- Spring Boot 3.2.1- JDK 17系统抛出的关键错误信息为:”Caused by: java.lang.IllegalArgumentException:…

    2025 年 5 月 12 日
    20600
  • 数据结构(Java版)第二期:包装类和泛型

    目录 一、包装类 1.1. 基本类型和对应的包装类 1.2. 装箱和拆箱 1.3. 自动装箱和自动拆箱 二、泛型的概念 三、引出泛型 3.1. 语法规则 3.2. 泛型的优点 四、类型擦除 4.1. 擦除的机制 五、泛型的上界 5.1. 泛型的上界的定义 5.2. 语法规则 六、泛型方法 6.1. 定义语法 6.2. 交换方法的实例 七、通配符 包装类和泛型…

    2025 年 1 月 1 日
    30900

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信