域名解析系统 DNS
1.域名系统概述
用户与互联网上某台主机通信时,必须要知道对方的IP地址。然而用户很难记住长达32 位的二进制主机地址。即使是点分十进制地址也并不太容易记忆。但在应用层为了便于用户记忆各种网络应用,连接在互联网上的主机不仅有P地址,而且还有便于用户记忆的主机名字。
域名系统(DomainNameSystem,DNS)是因特网使用的命名系统,用于将人们熟悉且具有意义的主机名(例如 www.baidu.com)转换为计算机更易处理的IP地址。相比于IP地址,人们更倾向于使用能够传达含义的字符串来标识网络上的设备。DNS系统采用客户/服务器(C/S)模型,其协议运行在UDP之上,使用53号端口。
简而言之:域名系统 DNS能够把互联网上的主机名字转换为IP地址。
在概念上,DNS可以分为三部分:
-
层次域名空间: DNS使用层次结构的域名空间来组织和管理域名。域名按照逻辑关系组成树状结构,以点分隔不同级别的域名。顶级域名(如.com、.org、.net)位于树的顶部,而主机名(如www)则位于树的底部,形成了完整的域名。
-
域名服务器: DNS系统由多个不同类型的域名服务器组成,这些服务器负责存储和管理域名与IP地址的映射关系。根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器等扮演不同的角色,协同工作完成域名解析的任务。
-
解析器: 解析器是DNS系统中的客户端程序,负责向域名服务器发送查询请求,并解析返回的响应数据。解析器通常运行在用户设备或网络设备上,如计算机、路由器等,帮助实现域名到IP地址的转换过程。
通过以上三部分的协同工作,DNS系统能够有效地实现域名解析功能,使得用户能够通过便于记忆的域名访问因特网上的各种服务和资源。
2. 层次域名空间
(1)层次树状域名
早期的互联网使用了非等级的名字空间,其优点是名字简短。但当互联网上的用户数急剧增加时,用非等级的名字空间来管理一个很大的而且是经常变化的名字集合是非常困难的。因此,互联网后来就采用了层次树状结构的命名方法。
采用这种命名方法,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(Domain Name)。这里,域(domain) 是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等。
从语法上讲,每一个域名都由**标号(label)**序列组成,而各标号之间用 “ . ” 隔开。
例如此域名就是中央电视台用于收发电子邮件的计算机(即邮件服务器)的域名,它由三个标号组成,其中标号com是顶级域名,标号cctv是二级域名,标号mail是三级域名。
(2)DNS对域名的规定
DNS对域名有着如下规定
- 域名中的标号仅包含英文字母和数字,每个标号最多不超过63个字符(建议不超过12个字符以便记忆);
- 不区分大小写(例如,CCTV和cctv等效);
- 标号中除连字符(-)外不允许使用其他标点符号;
- 域名从左到右级别递减,顶级域名在最右边;
- 完整域名由多个标号组成,总长度不超过255个字符。
DNS不规定域名需要包含多少个子域名,也不规定每个级别的域名意义。各级域名由其上一级管理机构管理,最高级顶级域名由ICANN管理。这种方法确保每个域名在互联网上是唯一的,同时设计了一种有效的域名查找机制。
(3)顶级域名的分类
根据2012年5月的统计[W-IANA-root],目前顶级域名TLD(Top-Level Domain)总数已达326个。
最初的顶级域名可分为三类:
- 国家顶级域名 nTLD:按照ISO 3166标准命名,通常被称为ccTLD(cc代表国家代码country-code如: cn 表示中国,us 表示美国,uk 表示英国等等)。截至2012年5月,国家顶级域名总数已达296个。
- 通用顶级域名 gTLD:截至2006年12月,通用顶级域名总数已达20个。最初确定的通用顶级域名包括7个:com(公司企业),net(网络服务机构),org(非营利性组织),int(国际组织),edu(美国专用的教育机构),gov(美国的政府部门),mil表示(美国的军事部门)。
后来又陆续增加了13个:aero(航空运输企业)、asia(亚太地区)、biz(公司和企业)、cat(使用加泰隆人的语言和文化团体)、coop(合作团体)、info(各种情况)、jobs(人力资源管理者)、mobi(移动产品与服务的用户和提供者)、museum(博物馆)、name(个人)、pro(有证书的专业人员)、tel(Telnic股份有限公司)、travel(旅游业)。 - 基础结构域名(infrastructure domain):这种顶级域名仅有一个,即arpa,用于反向域名解析,因此也被称为反向域名。
在国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为jp的日本,将其教育和企业机构的二级域名定为ac和co,而不用edu 和 com。
我国把二级域名划分为类别域名和行政区域名两大类。
- 类别域名共7个,分别为:ac(科研机构),com(工、商、金融等企业),edu(中国的教育机构),gov(中国的政府机构),mil(中国的国防机构),net(提供互联网络服务的机构),org(非营利性的组织)。
- 行政区域名共 34个,适用于我国的各省、自治区、直辖市。例如:hlj(黑龙江省)、jl(吉林省)、ln(辽宁省),等等。
3. 域名服务器
因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。域名到IP地址的解析是由运行在域名服务器上的程序完成的。一个服务器所负责管辖的(有权限的)范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器(authoritative name server),用来保存该区中的所有主机的域名到 IP 地址的映射。
互联网上的DNS 域名服务器也是按照层次安排的。每一个域名服务器都只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为4种不同的类型:
-
根域名服务器(Root Name Server):根域名服务器位于域名系统的最顶层,是所有域名服务器中最高级别的服务器。所有根域名服务器都具有所有顶级域名服务器的IP地址信息。根域名服务器在整个DNS系统中起着至关重要的作用,当本地域名服务器无法解析某个域名时,会向根域名服务器请求帮助。全球共有13台根域名服务器,每台看似独立,但实际上是由冗余服务器组成的集群,以确保安全性和可靠性。需要强调的是,根域名服务器主要负责管理顶级域名(如.com),通常不直接将域名解析为IP地址,而是指示本地域名服务器下一步应向哪个顶级域名服务器查询。
-
顶级域名服务器(Top-Level Domain Name Server):顶级域名服务器负责管理注册在该顶级域名服务器下的所有二级域名。当接收到DNS查询请求时,顶级域名服务器会提供相应的回答,可能是最终结果,也可能是下一个需要查询的域名服务器的IP地址。
-
权威域名服务器(Authoritative Name Server):每台主机都必须向授权域名服务器注册。为了提高可靠性,建议每台主机至少注册两个授权域名服务器。事实上,许多域名服务器同时担任本地域名服务器和授权域名服务器的角色。授权域名服务器能够将其管理的主机名转换为相应主机的IP地址。
-
本地域名服务器(Local Name Server):本地域名服务器在域名系统中扮演着重要角色。每个互联网服务提供商(ISP)、大学甚至大学内的各系都可能拥有一个本地域名服务器。当主机发送DNS查询请求时,该请求将发送至主机的本地域名服务器。例如,在Windows系统中配置网络连接时,需要填写DNS地址,这就是本地域名服务器的地址。
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器(Master Name Server),其他的是辅助域名服务器(Secondary Name Server)。当主域名服务器出故障时,辅助域名服务器可以保证 DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
4. 域名解析过程
域名解析是将人类可读的域名转换为计算机可识别的IP地址的过程。以下是域名解析的工作流程:
-
本地域名服务器查询:本地计算机上的操作系统会首先向本地域名服务器发送DNS查询请求。本地域名服务器通常由ISP提供,可以直接回答或者向其他域名服务器发出请求。
-
本地域名服务器查询缓存:本地域名服务器首先检查自己的缓存中是否保存有所查询域名的IP地址。如果缓存中存在,则直接返回IP地址给客户端。
-
向根域名服务器查询:如果本地域名服务器没有缓存查询的域名信息,它会向根域名服务器发送请求,询问该域名对应的顶级域名服务器的IP地址。
-
向顶级域名服务器查询:根域名服务器返回顶级域名服务器的IP地址给本地域名服务器。然后本地域名服务器向顶级域名服务器发送请求,获取下一级域名服务器的IP地址,比如.com顶级域名服务器。
-
向权威域名服务器查询:本地域名服务器将继续向下一级域名服务器(权威域名服务器)发送请求,获取查询域名对应的具体主机IP地址。
-
返回IP地址:最终,本地域名服务器通过多次查询获得了要查询域名的IP地址,并将这个IP地址返回给客户端的操作系统。
-
客户端访问网站:客户端收到IP地址后,就可以向该IP地址对应的主机发起连接,访问目标网站。这样,域名解析过程完成,用户可以正常访问网站内容。
整个域名解析的工作流程通过多层级的域名服务器协同工作,实现了将人类可读的域名映射到计算机可识别的IP地址,从而实现了因特网上各种服务的正常访问。
相关文章:
域名解析系统 DNS
1.域名系统概述 用户与互联网上某台主机通信时,必须要知道对方的IP地址。然而用户很难记住长达32 位的二进制主机地址。即使是点分十进制地址也并不太容易记忆。但在应用层为了便于用户记忆各种网络应用,连接在互联网上的主机不仅有P地址,而…...
Flutter 1.1:下载Flutter环境
1、在AS中下载Flutter插件 在setting的Plugins中下载Flutter,如图所示,可以直接进行搜索查找 2、下载flutter的sdk源代码 flutter中文文档学习 通过Git下载SDK源代码 git clone -b stable https://github.com/flutter/flutter.git3、配置系统变量 3…...
HTML5系列(6)-- 拖放 API 实战指南
前端技术探索系列:HTML5 拖放 API 实战指南 🎯 致读者:探索现代交互技术 👋 前端开发者们, 今天我们将深入探讨 HTML5 中一个强大而实用的特性 —— 拖放 API。这项技术能够让我们创建更加直观和交互性强的用户界面…...
windows下kafka初体验简易demo
这里提供了windows下的java1.8和kafka3.9.0版本汇总,可直接免费下载 【免费】java1.8kafka2.13版本汇总资源-CSDN文库 解压后可以得到一个文件夹 资料汇总内有一个kafka文件资料包.tgz,解压后可得到下述文件夹kafka_2.13-3.9.0,资料汇总内还…...
算法训练(leetcode)二刷第三十三天 | *322. 零钱兑换、*279. 完全平方数、*139. 单词拆分
刷题记录 *322. 零钱兑换*279. 完全平方数*139. 单词拆分 *322. 零钱兑换 leetcode题目地址 dp[j]存储amount为j时所需要的最少硬币数。当j为0时需要0个硬币,因此dp[0]赋值为0. 因为是取最少硬币数,因此初始化需要赋值一个最大值。 状态转移方程&…...
windows的pip镜像源配置
Windows 中 pip 镜像源配置 在 Windows 系统中,为了提高 pip 包的安装速度,我们可以配置 pip 的镜像源。以下是具体的配置步骤: 创建文件夹 在 C:\Users\Administrator\pip 路径下创建一个名为 pip.ini 的文件。 编辑 pip.ini 文件 使用文本…...
Django Rest Framework中嵌套关系的JSON序列化
在 Django Rest Framework (DRF) 中,处理嵌套关系的 JSON 序列化是一个常见需求。以下是如何实现嵌套关系序列化的详细说明,包括序列化器定义、模型关系以及常见用法。 1、问题背景 假设我们有以下两个模型: class Jobdtl(models.Model):jo…...
ONVIF协议网络摄像机客户端使用gsoap获取RTSP流地址GStreamer拉流播放
什么是ONVIF协议 ONVIF(开放式网络视频接口论坛)是一个全球性的开放式行业论坛,旨在促进开发和使用基于物理IP的安全产品接口的全球开放标准。 ONVIF规范的目标是建立一个网络视频框架协议,使不同厂商生产的网络视频产品完全互通。…...
40分钟学 Go 语言高并发:Go程序性能优化方法论
Go程序性能优化方法论 一、性能指标概述 指标类型关键指标重要程度优化目标CPU相关CPU使用率、线程数、上下文切换⭐⭐⭐⭐⭐降低CPU使用率,减少上下文切换内存相关内存使用量、GC频率、对象分配⭐⭐⭐⭐⭐减少内存分配,优化GC延迟指标响应时间、处理延…...
MySQL基础(语句)知识复习 (除索引和视图)
1.客户端和数据库操作 1.登录客户端界面:mysql -uroot -p 2.查看当前的数据库版本:select version(); 3.显示所有数据库:show databases;, 4.创建数据库:create [IF NOT EXISTS] database 库名 character set 字符…...
【sqlcipher】pc端sqflite使用过程中遇到的问题
在flutter中使用sqlcipher时 Mac上如果通过flutter带的文件管理api(即File的delete()方法)删除数据库文件,再创建同名的数据文件的话,必现readonly问题, 这里需要注意的一点是 DatabaseFactory 在Mac上直接使用全局的…...
Vue 实现无线滚动效果
目录 1.Element-plus官网中的Infinite Scroll组件说明 2.滚动条设置 3.滚动到底部的函数调用 1.Element-plus官网中的Infinite Scroll组件说明 官网链接如下所示: Infinite Scroll 无限滚动 | Element Plus 首先查看该代码,发现这个组件使用了一个…...
【CSS in Depth 2 精译_062】第 10 章 CSS 中的容器查询(@container)概述 + 10.1 容器查询的一个简单示例
当前内容所在位置(可进入专栏查看其他译好的章节内容) 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 ✔️ 10.1.1 容器尺寸查询的用法 ✔️ 10.2 深入理解容器10.3 与容器相关的单位10.4 容器样式查询的用法10.5 本章小结 文章目录 第 10…...
conda手动初始化
问题:环境中存在conda但是conda无法使用 方法: 进入到anaconda目录下, 进入bin目录, 然后执行 source activate要想启动时自动进入conda环境, 需要在 ~/.bashrc中添加如下命令 # >>> conda initialize >>> # !! Contents within this block are managed by …...
hhdb数据库介绍(10-28)
管理 管理菜单主要囊括对业务数据进行管理的功能,例如对数据的备份恢复或执行业务表的DDL语句等操作。 数据对象 数据对象功能可以帮助用户通过列表实时查看当前已存在的数据对象,了解业务数据的整体情况。提供了对数据对象的筛选、统计、关联、详情等…...
Spring Boot自定义启动banner
在启动 Springboot 应用时,默认情况下会在控制台打印出 Springboot 相关的banner信息。 自定义banner 如果你想自定义一个独特的启动banner,该怎么做呢?Springboot 允许我们通过自定义启动banner来替换默认的banner。只需要在 resources 目…...
c语言——数组名该如何理解呢?
一般情况下,数组名表示首元素地址,以下2种除外: ①、sizeof(数组名) 表示整个数组 ※只有数组名的情况 sizeof(数组名i) 就不能表示整个数组 ②、&数组名 表示整个数组,取的是整个数…...
前端 如何用 div 标签实现 步骤审批
在前端实现一个步骤审批流程,通常是通过 div 标签和 CSS 来构建一个可视化的流程图,结合 JavaScript 控制审批的状态变化。你可以使用 div 标签创建每一个步骤节点,通过不同的样式(如颜色、边框等)表示审批的不同状态&…...
QT工程,它该怎么学?
在现代软件开发中,QT因其强大的跨平台能力和友好的用户界面设计工具,成为开发者学习和应用的热门选择。特别是在Linux系统下,如何安装、配置QT开发环境,以及创建和管理QT工程是入门QT开发的关键环节。本文将从安装QT开发环境开始&…...
第426场周赛:仅含置位位的最小整数、识别数组中的最大异常值、连接两棵树后最大目标节点数目 Ⅰ、连接两棵树后最大目标节点数目 Ⅱ
Q1、仅含置位位的最小整数 1、题目描述 给你一个正整数 n。 返回 大于等于 n 且二进制表示仅包含 置位 位的 最小 整数 x 。 置位 位指的是二进制表示中值为 1 的位。 2、解题思路 我们需要找到一个整数 x,使得: x ≥ nx 的二进制表示中仅包含置位…...
23种设计模式之外观模式
目录 1. 简介2. 代码2.1 SelectFoodService (选择食品)2.2 PayService (支付服务)2.3 TakeService (制作服务)2.4 OrderService (下单服务)2.5 Food (食品)2.6 TackingSystem (外观类)2.7 Test (测试类) 3. 优缺点3. 总结 1. 简介…...
【智商检测——DP】
题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510, M 110; int f[N][M]; int main() {int n, k;cin >> n >> k;for(int i 1; i < n; i){int x;cin >> x;f[i][0] __gcd(f[i-1][0], x);for(int j 1; j < min(i, k)…...
LeetCode-430. 扁平化多级双向链表-题解
题目链接 430. 扁平化多级双向链表 - 力扣(LeetCode) 题目介绍 你将得到一个双链表,节点包含一个“下一个”指针、一个“前一个”指针和一个额外的“子指针”。这个子指针可能指向一个单独的双向链表,并且这些链表也包含类似的特殊…...
【CSS】一篇掌握CSS
不是因为有了希望才去坚持,而是坚持了才有了希望 目录 一.导入方式 1.行内样式 2.内部样式 3.外部样式(常用) 二.选择器 1.基本选择器(常用) 1.1标签选择器 1.2类选择器 1.3id选择器 2.层次选择器 2.1后代选择器 2.2子选择器 2.3相邻兄弟选择器 2.4通用兄弟选择器…...
华为仓颉编程环境搭建
1、仓颉介绍 摘自华为官方:仓颉编程语言作为一款面向全场景应用开发的现代编程语言,通过现代语言特性的集成、全方位的编译优化和运行时实现、以及开箱即用的 IDE 工具链支持,为开发者打造友好开发体验和卓越程序性能。 其具体特性表现为&am…...
手机实时提取SIM卡打电话的信令声音-蓝牙电话如何适配eSIM卡的手机
手机实时提取SIM卡打电话的信令声音 --蓝牙电话如何适配eSIM卡的手机 一、前言 蓝牙电话的海外战略中,由于海外智能手机市场中政策的差异性,对内置eSIM卡的手机进行支持是非常合理的需求。Android系列手机中,无论是更换通信运营商…...
三种方式(oss、本地、minio)图片的上传下载
一、OSS 1、前期准备 1.1 注册阿里云账号,开启对象存储oss功能,创建一个bucket(百度教程多的是,跟着创建一个就行,创建时注意存储类型是标准存储,读写权限是公共读) 有的在创建桶时读写属性是…...
使用pyQT完成简单登录界面
import sysfrom PyQt6.QtGui import QMovie,QPixmap from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QPushButton,QLineEdit#封装我的窗口类 class MyWidget(QWidget):#构造函数def __init__(self):#初始化父类super().__init__()# 设置窗口大小self.resize(330,…...
Postgres数据库自动化分区
一.创建自动化分区配置表并插入数据 -- Table: managerdb.par_info-- DROP TABLE IF EXISTS managerdb.par_info;CREATE TABLE IF NOT EXISTS managerdb.par_info (table_schema character varying(255) COLLATE pg_catalog."default" NOT NULL,table_name characte…...
【技术介绍】C++编程语言中的瑰宝
C,这门源于C语言并在其基础上进行大幅增强的编程语言,自诞生以来便以其独特的魅力和强大的功能吸引了无数编程者的目光。它不仅是计算机科学领域的一颗璀璨明珠,更是现代软件开发中不可或缺的重要工具。 解析【前言】 C的命名,寓…...
nginx反向代理
目录 环境准备 启动HTTP服务 配置Nginx 访问 部署 1.配置nginx 2.自动化脚本 3.执行脚本 4.使用ansible 什么是反向代理呢,参考nginx反向代理,业务部署过长中,常遇到的场景如下,通过访问域名/ip地址,后面接入网…...
分层图最短路
常见情形: 对于边有k次操作的题。。 整体思想: 分层图最短路可以视作是dijkstra的一个扩展,通常用于处理N小于10000,或者是k不大的情形。整体有点类似于拆点。将一个点拆成k个点处理。层与层之间互不影响。 好了我就说这么多&…...
FRU文件
FRU(Field Replaceable Unit)源文件的格式通常遵循IPMI FRU Information Storage Definition标准。在实际应用中,FRU源文件可以是JSON格式的,这种格式允许用户指定所有的FRU信息字段。以下是FRU源文件的JSON格式的一些关键点&…...
兔子繁衍问题
7-2 兔子繁衍问题 分数 15 全屏浏览 切换布局 作者 徐镜春 单位 浙江大学 一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔…...
飞凌嵌入式受邀亮相OpenHarmony人才生态大会2024
2024年11月27日,OpenHarmony人才生态大会2024在武汉洲际酒店举行。在这场汇聚了行业精英、技术大咖及生态伙伴的年度盛会上,飞凌嵌入式作为OpenHarmony社区的重要成员受邀出席,并展示了其在OpenHarmony 4.1系统适配方面的最新成果。 在大会的…...
Resrful控制器
Linux Debian 包管理器 apt DebianUbuntuKali红帽子 包管理器dnf或者yum RHELFedroaCentos Stream RHEL上游版本,就是什么新的内容、特性会在这个上面进行测试 运行 运行页面--dotnet blog.dll配置管理 server{listen 80;server_name m.域名;location / {proxy_p…...
Python练习(2)
重复元素判定续。利用集合的无重复性来编写一个程序如果有一个元素出现了不止一次则返回true但不要改变原来列表的值: 一: def has_duplicates(lst): # 使用集合来存储已经见过的元素 seen set() for item in lst: if item in seen: # 如果元素已经在…...
Qt清空文件夹下的内容
Qt清空文件夹下的内容 你可以使用 QDir 类来清空文件夹下的所有内容。以下是一个示例,展示了如何删除指定文件夹中的所有文件和子文件夹: #include <QCoreApplication> #include <QDir> #include <QFileInfoList> #include <QDeb…...
如何手动设置ubuntu服务器的ip、子网掩码、网关、DNS
在 Ubuntu 服务器上手动设置 IP 地址、子网掩码、网关和 DNS,通常有两种方式:使用传统的 ifconfig 命令和配置文件,或者使用现代的 netplan 配置方式(对于 Ubuntu 17.10 及以后版本,netplan 是默认的网络配置工具&…...
单片机状态机实现多个按键同时检测单击、多击、长按等操作
1.背景 在之前有个项目需要一个或多个按键检测:单击、双击、长按等操作 于是写了一份基于状态机的按键检测,分享一下思路 2.实现效果 单击翻转绿灯电平 双击翻转红灯电平 长按反转红绿灯电平 实现状态机检测按键单击,双击,长…...
graph rag都能做哪些事情
从提供的项目目录结构看,系统具备高复杂度和模块化的设计,可能用于大规模数据处理、知识图谱构建、自然语言处理等方面。以下是一些推理出的核心能力和应用场景: 1. 核心模块能力: API 层 (api) 主要用于对外接口的定义和服务调…...
Linux 用户和用户组管理
Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪&…...
Python酷库之旅-第三方库Pandas(251)
目录 一、用法精讲 1186、pandas.tseries.offsets.BusinessMonthEnd.is_year_start方法 1186-1、语法 1186-2、参数 1186-3、功能 1186-4、返回值 1186-5、说明 1186-6、用法 1186-6-1、数据准备 1186-6-2、代码示例 1186-6-3、结果输出 1187、pandas.tseries.offs…...
利用Ubuntu批量下载modis图像(New)
由于最近modis原来批量下载的代码不再直接给出,因此,再次梳理如何利用Ubuntu下载modis数据。 之前的下载代码为十分长,现在只给出一部分,需要自己再补充另一部分。之前的为: 感谢郭师兄的指导(https://blo…...
Redis分布式锁
一、全局ID生成器 1.1 概念 全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具。具有以下特点: (1)唯一性;(2)高可用;(3&…...
【Maven】依赖管理
4. Maven的依赖管理 在 Java 开发中,项目的依赖管理是一项重要任务。通过合理管理项目的依赖关系,我们可以有效的管理第三方库,模块的引用及版本控制。而 Maven 作为一个强大的构建工具和依赖管理工具,为我们提供了便捷的方式来管…...
leetcode——移除数组
26.删除有序数组中的重复项 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素…...
vue项目部署到github pages后页面显示不出来??
问题: 当我们在命令行执行 npm run build 后,项目的目录下会生成一个 dist 文件夹,它里面又包含一个 static 文件夹和一个 index.html 文件,这是 webpack 最终打包好的文件 项目上传到仓库后发现页面为空,找不到文件路…...
为什么爱用低秩矩阵
目录 为什么爱用低秩矩阵 一、定义与性质 二、区别与例子 为什么爱用低秩矩阵 我们更多地提及低秩分解而非满秩分解,主要是因为低秩分解在数据压缩、噪声去除、模型简化和特征提取等方面具有显著的优势。而满秩分解虽然能够保持数据的完整性,但在实际应用中的场景较为有限…...
如何在MySQL中计算两个日期的间隔天数
目录 1. DATEDIFF函数2. TIMESTAMPDIFF函数3. PERIOD_DIFF函数4. 函数对比 在MySQL 5.7中,计算两个日期之间的间隔天数是一项常见的任务。 1. DATEDIFF函数 DATEDIFF函数可以直接计算两个日期之间的天数差异。 -- 计算2024年1月1日和2024年1月10日之间的天数差异 …...