【网络协议】聊聊HTTPDNS如何工作的
传统 DNS 存在哪些问题?
域名缓存问题
我们知道CND会进行域名解析,但是由于本地会进行缓存对应的域名-ip地址,所以可能出现过期数据的情况。
域名转发问题
出口 NAT 问题
域名更新问题
解析延迟问题
因为在解析DNS的时候,需要进行递归的遍历多个DNS服务器,这中间有一定的时延,所以会有时间延迟问题。
HTTPDNS的工作模式
既然DNS存在一定的问题, 那么又没有轻量级的DNS解析方式,HTTPDNS其实就是一种,使用HTTP协议进行DNS解析,请求服务器集群,获取最近的地址。

整体流程如下:
1.手机客户端请求HTTPDNS服务器,获取IP列表,缓存在本地,随着不断的解析域名,本地也会存储一份DNS解析结果的缓存数据。
2.如果从本地缓存可以获取数据,直接返回
3.如果从本地没有获取,那么直接请求HTTPDNS服务器,选择一个IP列表中一个发起HTTP请求。
4.HTTPDNS 服务会有智能调度和健康检查等接口。
HTTPDNS的缓存设计
为了提升读取速度,有自己的本地缓存。但是缓存的失效和更新如何保证呢。
对于HTTPDNS来说,就是手机客户端、DNS缓存、HTTPDNS服务器。

更新缓存的方式其实就是两种,一种是同步更新。也就是cache-Aside机制。先读取缓存,如果失效,读取源数据,然后设置更新缓存。
另一种是异步方式也就是快失效的时候,异步起一个线程进行处理。本质上来说DNS缓存,也需要有数据的持久化能力,保证数据不丢失。
HTTPDNS 的调度设计
调度设计其实就是需要根据不同的后端服务应用,给出一个优先响应列表,比如根据服务的容错率、健康检查、所在宿主机的配置、服务所在区域等进行调度,分配。

传统的 DNS 有很多问题,例如解析慢、更新不及时。因为缓存、转发、NAT 问题导致客户端误会自己所在的位置和运营商,从而影响流量的调度。
HTTPDNS 通过客户端 SDK 和服务端,通过 HTTP 直接调用解析 DNS 的方式,绕过了传统 DNS 的这些缺点,实现了智能的调度。
相关文章:
【网络协议】聊聊HTTPDNS如何工作的
传统 DNS 存在哪些问题? 域名缓存问题 我们知道CND会进行域名解析,但是由于本地会进行缓存对应的域名-ip地址,所以可能出现过期数据的情况。 域名转发问题 出口 NAT 问题 域名更新问题 解析延迟问题 因为在解析DNS的时候,需要进行…...
TikTok与老年用户:社交媒体的跨代交流
在数字时代,社交媒体已成为人们沟通、分享和互动的主要平台。然而,社交媒体不再仅仅局限于年轻一代,老年用户也逐渐加入其中。 其中,TikTok是一个引领潮流的短视频社交媒体应用,正在吸引越来越多的老年用户。本文将探…...
如何在Linux机器上使用ssh远程连接Windows Server服务器
如何在Linux机器上使用ssh远程连接Windows Server服务器 一、源起二、使用ssh远程连接Windows1.先决条件(1)至少运行 Windows Server 2019 或 Windows 10(内部版本 1809)的设备。(2)PowerShell 5.1 或更高版…...
NLP常见任务的分类指标
自然语言处理(NLP)任务的评估指标因任务类型和目标而异。以下是一些常见的 NLP 任务以及相应的评估指标: 1、 文本分类任务: 准确率(Accuracy):分类正确的样本数量与总样本数量的比例。 精确率…...
node插件express(路由)的插件使用(二)——body-parser和ejs插件的基本使用
文章目录 前言一、express使用中间件body-parser获取请全体的数据1. 代码2. 效果 二、express使用ejs(了解即可)1.安装2.作用3.基本使用(1)代码(2)代码分析和效果 4.列表渲染(1)代码…...
学习c++的第十天
目录 类 & 对象 类定义 对象的建立和使用 构造函数(Constructor) 析构函数(Destructor) 拷贝构造函数 扩展知识 this指针 友元函数的使用方法 友元类的使用方法 常数据的使用及初始化 类 & 对象 什么是类?什么是对象?对于面向对象的…...
895. 最长上升子序列
题目: 895. 最长上升子序列 - AcWing题库 思路:dp 代码: #include<iostream> #include<cstdio> #include<cmath> using namespace std; typedef long long ll; const int N1010; int f[N];//表示以i结尾的最大上升子序列…...
岩土工程铁路桥梁监测中智能振弦传感器的应用方案
岩土工程铁路桥梁监测中智能振弦传感器的应用方案 智能振弦传感器是近年来岩土工程和桥梁监测领域的重要技术之一。它具有高灵敏度、高精度、高可靠性等优点,并且能够实时对结构物振动进行监测和分析。本文针对岩土工程铁路桥梁监测中智能振弦传感器的应用方案进行…...
【数智化人物展】觉非科技CEO李东旻:数据闭环,智能驾驶数智时代发展的新引擎...
李东旻 本文由觉非科技CEO李东旻投递并参与《2023中国企业数智化转型升级先锋人物》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 数智化的主要作用是帮助决策。它的核心是大数据,以大数据为基础,匹配合适的AI技术,促使数…...
字符型液晶显示器LCD 1602的显示控制(Keil+Proteus)
前言 趁机把LCD 1602的实验完成了,那个电路图有几个地方没弄懂,但是去掉也没有报错,就没管了。 LCD1602_百度百科 (baidu.com)https://baike.baidu.com/item/LCD1602/6014393?frge_ala LCD1602液晶显示屏通过电压来改变填充在两块平行板之…...
为什么我学了几天 STM32 感觉一脸茫然?
今日话题,为什么我学了几天 STM32 感觉一脸茫然?从51单片机过渡到STM32,首先需要理解“单片机”究竟是什么,编程语言虽然重要,但也需要深入理解。51单片机的控制相对简单,基本是函数调用,通过给…...
DC-DC降压芯片120V转12V5A大功率SL3038电源芯片
本文将介绍一款DC-DC降压芯片,将120V的电压转换为12V5A的大功率输出,使用SL3038电源芯片实现。在开始介绍之前,我们先来了解一下DC-DC降压芯片和SL3038电源芯片的基本原理和特点。 DC-DC降压芯片是一种常见的电源管理芯片,它可以将…...
CE认证木质玩具TUME外贸出口测试报告解析
木制玩具,顾名思义,使用木制原料制成的玩具。木制玩具具有牢固耐玩、安全卫生,摔不碎,不生锈,无锋利棱角的特点。深受大家的喜爱。木质玩具出口需办理CE认证。 CE认证是一种安全认证标志,代表欧盟认可的&a…...
oracle_19c 安装
oracle安装部署 1、安装docker,docker-compose环境。 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun curl -L "https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/b…...
随时随地时时刻刻使用GPT类应用
疑问 很多人说GPT的广泛使用可能会使人们失业,会对一些互联网公司的存活造成挑战,那么这个说法是真的吗? 这个说法并不完全准确。虽然GPT等AI技术的广泛应用可能会对某些行业和职业产生影响,但并不意味着它会导致人们失业或互联网…...
运动检测辅助系统
运动检测辅助系统是一种结合了传感器技术、数据处理技术和智能算法的系统,旨在帮助用户监测、评估和改善其运动行为及健康状况。这类系统通常利用多种传感器(如运动传感器、摄像头、心率监测器等)采集用户的运动数据,并通过数据处…...
0002Java安卓程序设计-基于Uniapp+springboot菜谱美食饮食健康管理App
文章目录 开发环境 《[含文档PPT源码等]精品基于Uniappspringboot饮食健康管理App》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 功能介绍ÿ…...
LeetCode算法题解(回溯)|39. 组合总和、40. 组合总和 II、131. 分割回文串
一、39. 组合总和 题目链接:39. 组合总和 题目描述: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意…...
基于springboot实现招聘信息管理系统项目【项目源码+论文说明】
基于springboot实现招聘信息管理系统演示 摘要 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括招聘信息管理系统的网络应用,在外国招聘信息管理系统已经是很普遍的方式,不过国内的线上管理系统可能还…...
Freeswitch实现软电话功能
1.话务步骤 分机注册->登录->拨打电话-> /*<--注册分机-->*/ EslMessage eslMessage1 inboundClient.sendApiCommand("callcenter_config agent set contact", "21009default user/1000"); System.out.println("#####dial eslMessa…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...
32位寻址与64位寻址
32位寻址与64位寻址 32位寻址是什么? 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元(地址),其核心含义与能力如下: 1. 核心定义 地址位宽:CPU或内存控制器用32位…...
