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

# 背景

我们的公司提供的所有服务均位于香港,这意味着我们的客户,主要分布在中国内地,访问这些服务时可能会遇到速度较慢的问题。由于我们专注于NFT领域,因此选择在香港提供服务。

# 一、加速策略

## 1.1 静态资源加速

静态资源加速是指对如HTML、JavaScript、CSS和图像文件等静态文件的快速分发。利用云服务提供商的CDN服务,我们可以有效地提升这些静态资源的加载速度。

## 1.2 动态数据加速

动态数据加速则涉及到实时数据的处理,特别是API接口的数据。由于这些数据需要实时更新,我们不能简单地通过缓存来加速。因此,我们的目标是提高API的响应速度,这通常受到网络条件的限制。

# 二、部署方案

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

# 三、架构细节

## 用户访问路径

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

### 3.1 第一步:DNS解析

阿里云提供的智能DNS解析服务可以加速域名解析过程,这是用户访问我们服务的第一步。

### 3.2 第二步:D CDN

D CDN可以被视为阿里云在全球范围内的接入点。全球有超过3200个节点,智能DNS会根据用户的地理位置选择最近的节点,然后D CDN会计算出最优的回源路径。

### 3.3 第三步:全球加速(GA)

D CDN之后是我们购买的全球加速服务(GA)。我们选择了香港和北京作为上车点。GA依托于阿里云强大的BGP网络,确保数据传输的高效性。

### 3.4 第四步:应用负载均衡(ALB)

GA回源到我们的ALB,这是一个动态的负载均衡器,可以提高响应速度。最初,我们将Web应用防火墙(WAF)部署在ALB上,但后来为了降低D CDN的费用,我们将WAF功能集成到了D CDN中,从源头过滤攻击,提高了效率并节省了成本。

### 3.5 第五步:后端服务器

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

# 四、总结

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

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

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

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

相关推荐

  • 《深入理解Mybatis原理》Mybatis中的缓存实现原理

    一级缓存实现 什么是一级缓存? 为什么使用一级缓存? 每当我们使用MyBatis开启一次和数据库的会话,MyBatis会创建出一个SqlSession对象表示一次数据库会话。 在对数据库的一次会话中,我们有可能会反复地执行完全相同的查询语句,如果不采取一些措施的话,每一次查询都会查询一次数据库,而我们在极短的时间内做了完全相同的查询,那么它们的结果极有可能完…

    2025 年 1 月 14 日
    52100
  • java: JDK isn‘t specified for module ‘product-service‘问题解决

    目录 问题 解决方法 1.打开File->Project Structure… 2.将Project SDK修改为17 Oracle OpenJDK 17.0.12,并Apply,OK 问题 添加module后报错:java: JDK isn’t specified for module ‘product-service’ 查看pom.xml文件也添加了…

    2025 年 1 月 19 日
    47500
  • Android Studio更改项目使用的JDK

    一、对配置流程的不满 在安卓开发领域,配置JDK和Gradle本应是一项简单的任务。通常情况下,开发者只需在Android Studio的File菜单下选择Project Structure,便能轻松完成设置,这一流程可谓便捷至极。 以下是原先修改JDK的界面: 然而,众所周知,Android Studio的性能问题一直为人所诟病,加之其对用户需求的忽视,使…

    2024 年 12 月 28 日
    1.0K00
  • 【Java异常处理】Spring框架中Bean创建失败的解决方案剖析

    欢迎语 诚挚欢迎各位技术爱好者来到这个知识分享平台!在这里,我们不仅能交流前沿技术,还能共同探讨开发中的疑难杂症。期待与您携手在编程世界里不断进步! 问题概述 在基于Spring框架的Java应用开发过程中,org.springframework.beans.factory.BeanCreationException是开发者经常遭遇的典型异常。这个异常通常出…

    2025 年 5 月 19 日
    46800
  • SpringBoot3整合Swagger3时出现Type javax.servlet.http.HttpServletRequest not present错误

    目录 错误详情 错误原因 解决方法 引入依赖 修改配置信息 创建文件 访问 错误详情 错误原因 SpringBoot3和Swagger3版本不匹配 解决方法 使用springdoc替代springfox,具体步骤如下: 引入依赖 在pom.xml文件中添加如下依赖: org.springdoc springdoc-openapi-starter-webmvc…

    2025 年 1 月 19 日
    68000

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信