【JavaGuide面试总结】高性能篇

news2024/12/23 11:07:37

【JavaGuide面试总结】高性能篇

  • 1.静态资源是如何被缓存到 CDN 节点中的?
  • 2.如何找到最合适的 CDN 节点?
  • 3.如何防止资源被盗刷?

1.静态资源是如何被缓存到 CDN 节点中的?

你可以通过预热的方式将源站的资源同步到 CDN 的节点中。这样的话,用户首次请求资源可以直接从 CDN 节点中取,无需回源。这样可以降低源站压力,提升用户体验。

如果不预热的话,你访问的资源可能不再 CDN 节点中,这个时候 CDN 节点将请求源站获取资
源,这个过程是大家经常说的 回源

命中率 和 回源率 是衡量 CDN 服务质量两个重要指标。命中率越高越好,回源率越低越好🦜

如果资源有更新的话,你也可以对其 刷新 ,删除 CDN 节点上缓存的资源,当用户访问对应的资源时直接回源获取最新的资源,并重新缓存。


2.如何找到最合适的 CDN 节点?

GSLB (Global Server Load Balance,全局负载均衡)是 CDN 的大脑,负责多个CDN节点之间相互协作,最常用的是基于 DNS 的 GSLB。

CDN 会通过 GSLB 找到最合适的 CDN 节点,更具体点来说是下面这样的:

  1. 浏览器向 DNS 服务器发送域名请求;
  2. DNS 服务器向根据 CNAME( Canonical Name ) 别名记录向 GSLB 发送请求;
  3. GSLB 返回性能最好(通常距离请求地址最近)的 CDN 节点(边缘服务器,真正缓存内容的地方)的地址给浏览器;
  4. 浏览器直接访问指定的 CDN 节点。

CDN 原理示意图

GSLB 是如何选择出最合适的 CDN 节点呢? GSLB 会根据请求的 IP 地址、CDN 节点状态(比如负载情况、性能、响应时间、带宽)等指标来综合判断具体返回哪一个 CDN 节点的地址。


3.如何防止资源被盗刷?

如果我们的资源被其他用户或者网站非法盗刷的话,将会是一笔不小的开支。

解决这个问题最常用最简单的办法设置 Referer 防盗链,具体来说就是根据 HTTP 请求的头信息里面的 Referer 字段对请求进行限制。我们可以通过 Referer 字段获取到当前请求页面的来源页面的网站地址,这样我们就能确定请求是否来自合法的网站。

腾讯云 CDN Referer 防盗链配置

不过,如果站点的防盗链配置允许 Referer 为空的话,通过隐藏 Referer,可以直接绕开防盗链🦩

通常情况下,我们会配合其他机制来确保静态资源被盗用,一种常用的机制是 时间戳防盗链 。相比之下,时间戳防盗链 的安全性更强一些。时间戳防盗链加密的 URL 具有时效性,过期之后就无法再被允许访问。

时间戳防盗链的 URL 通常会有两个参数一个是签名字符串,一个是过期时间。签名字符串一般是通过对用户设定的加密字符串、请求路径、过期时间通过 MD5 哈希算法取哈希的方式获得。

时间戳防盗链 URL示例:

http://cdn.wangsu.com/4/123.mp3? wsSecret=79aead3bd7b5db4adeffb93a010298b5&wsTime=1601026312
  • wsSecret :签名字符串。
  • wsTime: 过期时间。

时间戳防盗链的实现也比较简单,并且可靠性较高,推荐使用。并且,绝大部分 CDN 服务提供商都提供了开箱即用的时间戳防盗链机制。

七牛云时间戳防盗链配置

除了 Referer 防盗链和时间戳防盗链之外,你还可以 IP 黑白名单配置、IP 访问限频配置等机制来防盗刷。

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

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

相关文章

docker安装达梦8,并且远程连接数据库

官方技术文档地址:https://eco.dameng.com/document/dm/zh-cn/start/index.html 不能直接拉取达梦数据库的镜像,需要去官方提供的下载地址下载镜像,上传到服务器 下载地址:https://eco.dameng.com/download/ 下载完成之后确认下…

【黑马SpringCloud(3)】Docker镜像容器操作Docker-Compose的使用

Docker初识DockerDocker与虚拟机的区别Docker架构DockerHubDocker镜像操作Docker容器操作数据卷自定义镜像镜像结构Dockerfile构建Java项目基于java:8-alpine镜像,构建java项目集群部署微服务Docker-Compose镜像仓库搭建私有镜像仓库Docker安装:https://…

Windows Server 2008 系统加固(2)

实验简介 实验所属系列: 系统安全 实验对象: 本科/专科信息安全专业 相关课程及专业: 服务器安全 实验时数(学分):2学时 实验类别: 实践实验类预备知识 Windows server 2008 是微软公司的…

4 -【Faster R-CNN】之 RPN Head 代码精读

【Faster R-CNN】之 RPN Head 代码精读1、前言2、RPN Head 网络结构3、代码4、相关问题1、前言 在上一篇文章 【Faster R-CNN】之 backbone 代码精读 中,我们学习了创建 backbone,并将 batch 中的图片通过backbone 获得了 feature maps。 batch 的 feat…

linux的shell命令中grep命令返回值问题

linux的shell命令中grep命令返回值问题如何查看上一个命令退出状态?$?的作用set -e的作用一个代码例子shell脚本中的错误示例如何查看上一个命令退出状态? $?的作用 $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一…

【C语言练习】杨氏矩阵、杨辉三角

目录一:杨氏矩阵🐻何为杨氏矩阵?🐻题目描述:🐻思路一:🐻思路二:二:杨辉三角🐻何为杨辉三角?🐻题目描述:&#…

python数据结构(四):dict(字典)

一、定义字典 1、使用花括号,可以直接定义字典 使用一对大括号{},数据是成对存在的,每一行冒号左边的是键(key),右边的是值(value),称作键值对,以逗号分隔开。键是不能重…

Fennec:针对类Unix操作系统的多功能事件应急响应工具箱

关于Fennec Fennec是一个针对类Unix操作系统的多功能事件应急响应工具箱,Fennec基于Rust开发,可以帮助广大研究人员在类Unix操作系统上实现网络安全事件应急响应。除此之外,Fennec还支持广大研究人员自行开发相关的配置文件,并增…

第一章.感知机

第一章.感知机 1.感知机的简介 1).简介 感知机接收多个输入信号,输出一个信号。感知机的信号只有"流/不流"(1/0)两种取值[0:对应不传递信号,1:对应传递信号] 2).感知机图像描述的两种方式 ①.第一种方式: …

css3 transform(变形) 实战示例

1--利用transform实现居中效果 <div class"center">.... </div> .center{text-align: center;background-color: #fff;border-radius: 20px;width: 300px;height: 350px;position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%); } 让…

第一章 隐私计算科普解读

前言 提醒&#xff1a;全文10千字&#xff0c;预计阅读时长15分钟&#xff1b;读者&#xff1a;对隐私计算感兴趣的小伙伴&#xff1b;目的&#xff1a;读者利用15~30 分钟对本文沉浸式阅读理解&#xff0c;能够掌握隐私计算 80% 的概念&#xff1b;关键词 &#xff1a;隐私计算…

全网最细------爬取4k付费高清大图(免费下载再也不是梦)

本次案例将教大家免费爬取4k高清付费大图&#xff0c;即使你是爬虫新手&#xff0c;也可以食用本次文章实现你的免费下载梦,话不多说&#xff0c;先看效果 网站视图: 看到这些图片你是否怦然心动&#xff0c;跟着我一起看下去. 下图是图片下载后保存的目录 一.思路分析 首…

QEMU安装Windows 10的完整过程

零、环境介绍 宿主机&#xff1a; Ubuntu 22.04.1 LTS Windows 10镜像&#xff1a; Windows10_20H2.iso QEMU版本&#xff1a; qemu-img version 7.1.0 Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers 一、安装过程 1. 创建镜像文件 使用qe…

7、标识重复个案

目录 一、导入或打开数据 二、选择“数据”菜单下的“标识重复个案”&#xff0c;弹出相应对话框 三、在上个步骤的基础上&#xff0c;将左边的所有变量都移至右边“定义匹配个案的依据”中&#xff0c;其他的选项没有特殊要求的可保持默认&#xff0c;单击“确定”即完成。…

Cookie 和 Session 详解 及实现用户登陆功能

Cookie是啥? 浏览器提供的在客户端存储数据的一种机制。(由于浏览器禁止了网页中的代码直接访问磁盘的文件因此要想再网页中实现数据的持久化存储、就可以使用Cookie这样的机制 Cookie 里面存什么? 键值对结构.键和值都是程序猿自定义的~Cookie从哪里来? 服务器返回响应…

【Java|golang】2325. 解密消息

给你字符串 key 和 message &#xff0c;分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下&#xff1a; 使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。 将替换表与普通英文字母表对齐&#xff0c;形成对照表。 按照对照表 替换 mess…

【23 Java后端】小米

一、JavaSE JaveEE —— Java 数据结构 —— 集合类 1. HashMap 底层&#xff0c;链表与红黑树转换原因 JDK 1.7 HashMap 底层使用 “数组链表” 实现&#xff0c;数组为主体&#xff0c;链表为了解决 哈希冲突JDK 1.8 HashMap 底层使用 “数组链表红黑树” 实现 当链表长度…

bootstrap是什么,bootstrap如何使用

bootstrap是什么 Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架&#xff0c;用于开发响应式布局、移动设备优先的 WEB 项目。 使用bootstrap 下载地址

Power BI散点图

散点图可以让一大堆令人困惑的散乱数据变得通俗易懂&#xff0c;并能让你从这些庞杂数据中发现一些表面上看不到的关系&#xff0c;数据量越大&#xff0c;从散点图的分布中越能看出来一些规律。 什么是散点图 在直角坐标系中&#xff0c;用两组数据构成多个坐标点&#xff0…

【无标题】质量管理10题

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…