JAVA开发(Web应用境外访问慢问题)

news2024/11/18 9:46:04

背景:

最近公司做的小程序出现在香港地区访问慢的问题。因为我们的应用是部署在大陆的腾讯服务器(北京)上,所以在香港地区访问大陆应用会比较慢。初步体验是4-5秒的响应速度。

影响的原因:

1、网络的原因,先看一下中国网络拓扑图,所有境外的网络访问大陆的网络都需要走对外出口,进入主干网,再到地区网络,所以本身就会有比较长的网络延迟。

 2、我们没有对香港地区进行CDN加速。所以我们首先想到的是CDN加速。将静态图片资源进行加速。

 使用CDN需要注意的事项:

合理的架构让网站更适应于 CDN,降低成本的同时,也提高了安全性。如果你的网站在开发之初没有考虑使用 CDN,那你可能需要一些调整。

一般来说,架构适用于 CDN 的网站主要有两大原则:

1) 动静分离

将网站的静态内容和动态内容分离。

静态内容指的是不随用户行为而改变的内容,比如文章、商品介绍等,不管用户是否登录,这些内容都是一样的。动态内容则反之,它随着用户的行为而改变,比如用户信息、留言列表、收藏按钮等。

一个页面往往会混合静态内容和动态内容,我们可以页面中使用 JavaScript 来加载动态内容。

为了降低请求次数,同时提高 SEO 效果,可以将用户评论、点击量、点赞量等看做静态内容,只要定期或者按照规则刷新 CDN 缓存即可。

CDN 缓存可以设置失效时间,也可以主动刷新,一般的 CDN 都支持手动刷新或者 API 刷新(编程刷新)。

另外为了安全,最好准备两台服务器,一台放置静态内容并启用 CDN,一台放置动态内容不启用 CDN。放置动态内容的服务器更容易遭受攻击,即使动态内容服务器挂掉,也不影响静态内容的访问。

既然使用了不同的服务器,也应该为静态内容和动态内容设置不同的域名。

2) 资源文件分离

资源文件是指那些内容几乎不会变动的文件,比如图片、视频、压缩包等。

由于网站模板更改、内容变动、用户评论、放置广告等诸多原因,静态内容需要经常更新,这个时候就需要刷新 CDN 缓存。我们通常可以针对一个 URL、一个目录、一个域名刷新 CDN 缓存。

尤其是针对一个域名刷新 CDN 缓存的时候,如果资源文件和静态内容位于同一个域名下,那么所有资源文件的缓存也会被刷新。资源文件的体积往往是静态内容的数倍,刷新资源文件不但会消耗很多流量,还会给源服务器带来不小的压力。

如果你为了提高 SEO 效果,将用户评论、点击量、收藏量等看做静态内容,那你就需要经常刷新域名下的所有静态内容,此时资源文件也会一并刷新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【HBase高级】7. HBase调优、常见问题处理

HBase调优 6.1 通用优化 NameNode的元数据备份使用SSD 定时备份NameNode上的元数据 每小时或者每天备份,如果数据极其重要,可以5~10分钟备份一次。备份可以通过定时任务复制元数据目录即可。 为NameNode指定多个元数据目录 使用dfs.name.dir或者dfs…

4.5--贪心--单源最短路径问题

设置顶点集合S并不断地作贪心选择--(不属于这个集合S中距离"源"最短的顶点)来扩充这个集合--更新最短距离 这张图需要放在最前面,就是经典dijkstra的主要思想。 为什么这样贪心是对的? 1、问题描述 给定带权有向图G (…

C++ 入门

C是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等 文章目录一、命名空间二、输入输出三、缺省参数四、函数重载五、引用1. 引用的用法2. 常引用3. 引用的使用场景4. 引用的底层实现六、内联函数七、auto 关…

数组

循环队列中元素个数计算方法是固定的,即(尾-头)%长度,但是由于是循环队列所以尾可能会小于头,所以要加上长度,使尾-头保持是正整数,然后再对长度求余,即元素个数。循环队列中:头指针指向队列头元…

基于Java+Spring+Html的图书借阅管理系统详细设计和实现

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

seo:百度统计

一、百度统计官网https://tongji.baidu.com/web5/welcome/login二、理解百度统计个人理解,添加这段代码到网站首页,有人访问该网站,即会加载这段代码,接着把信息发送到百度统计id 对应的百度统计账号,可从百度统计查看…

OpenMMLab AI实战课笔记 -- 第2节课

OpenMMLab AI实战课笔记 -- 第2节课1. 第二节课(图像分类)1.1 深度学习模型1.2 网络进化过程1.3 ResNet (残差网络)1.4 卷积的参数量1.5 卷积的计算量(乘加次数)1.6 降低模型参数量和计算量的方法1.7 可分离卷积1.8 注意力机制 At…

常见正则表达式使用参考

目录 一、正则函数 1.REGEXP 2.regexp_replace 3.regexp_extract 二、正则表达式 三、特殊字符转义 一、正则函数 1.REGEXP 语法格式: A REGEXP B (A是需要匹配的字符串,B是正则表达式字符串) 操作类型: strings 描述: …

UniTask详解

前言 UniTask为Unity提供一个高性能,0GC的async/await异步方案。 基于值类型的UniTask和自定义的 AsyncMethodBuilder 来实现0GC使所有 Unity 的 AsyncOperations 和 Coroutines 可等待基于 PlayerLoop 的任务( UniTask.Yield, UniTask.Delay, UniTask.DelayFrame…

哈工大机器学习复习笔记(四)

本篇文章是在参考西瓜书、PPT课件、网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助。这篇笔记只是复习的一个参考,大家一定要结合书本、PPT来进行复习,有些公式的推导最好能够自己演算一遍。由于…

Scala 简单实现数据库连接池

在使用JDBC的时候,连接池是非常宝贵的资源。为了复用这些资源,可以将连接保存在一个队列中。当需要的时候可以从队列中取出未使用的连接。如果没有可用连接,则可以在一定时间内等待,直到队列中有可用的连接,否则将抛出…

浅谈估值模型:PB指标与剩余收益估值

摘要及声明 1:本文简单介绍PB指标的推导以及剩余收益的估值方式; 2:本文主要为理念的讲解,模型也是笔者自建,文中假设与观点是基于笔者对模型及数据的一孔之见,若有不同见解欢迎随时留言交流&#xff1b…

【HTML】HTML 标签 ① ( 骨架标签 | 双标签和单标签 | 嵌套关系和并列关系 | 文档类型 | 页面语言 | 编码字符集 )

文章目录一、HTML 标签简介二、HTML 骨架标签三、双标签和单标签四、嵌套关系和并列关系五、文档类型六、页面语言七、编码字符集一、HTML 标签简介 HTML 英文全称 " HyperText Mark-up Language " , 中文名称是 " 超文本标记语言 " ; 多媒体 : 超文本 指…

小 C 爱观察(observe)

小 C 爱观察(observe)题目描述输入格式输出格式样例输入数据#1输出数据#1解释#1输入数据#2输出数据#2输入数据#3输出数据#3题目描述 小 C 非常喜欢树。上次后院的蚂蚁看腻了,这次准备来观察树。 小 C 每天起得早早的,给小树浇水…

shell 流程控制之条件判断及案例

目录 流程控制之条件判断 一,if条件语句的语法及案例 1,单分支结构 2,双分支结构 3,多分支结构 二,复合指令 三, exit退出程序 四, 多条件判断语句case 流程控制之条件判断 条件判断语句…

【SpringCloud】Sentinel 之隔离与降级

一、上集回顾上级文章地址:【SpringCloud】Sentinel 之流量控制_面向架构编程的博客-CSDN博客上一篇文章我们讲解了Sentinel 流量控制、流控效果、热点参数限流的用法,统称为限流,它是一种预防措施,可以尽量避免因高并发而引起的服…

根据官方文档详细说明 Kubernetes 网络流量走向,包含详细的图文说明和介绍

根据官方文档详细说明 Kubernetes 网络流量走向,包含详细的图文说明和介绍。 阅读本文,你可以了解在 Kubernetes 内外,数据包是如何转发的,从原始的 Web 请求开始,到托管应用程序的容器。 Kubernetes 网络要求 在深入…

【three.js】本地搭建Threejs官方文档网站 解决threejs官方文档打开过慢得到问题

本文主要为了解决three.js 官方文档 打开过慢的问题 因为Three.js官网是国外的服务器,所以为了方便学习和快速的查阅文档,我们可以自己搭建Three.js官网和文档,方便随时查看案例和文档内容进行学习。 1、首先进入threejs库GitHub地址&#xf…

如何成为一名FPGA工程师?需要掌握哪些知识?

我国每年对于FPGA设计人才的需求缺口很大。在需求缺口巨大的情形下,发展前景相对可观。那么如何成为一名FPGA工程师? 什么是FPGA? FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它…

新手入门Pinia

什么是Pinia Pinia 是 Vue 的专属状态管理库,它允许你跨组件或页面共享状态。它和Vuex作用类似(发音为 /piːnjʌ/),官网 为什么要使用Pinia 与 Vuex 相比,Pinia 不仅提供了一个更简单的 API,也提供了符合组合式 API 风格的 API&#xff0…