浅谈云计算03 | 云计算的技术支撑(云使能技术)
云计算的技术支撑
- 一、定义与内涵
- 1.1 定义与内涵
- 二、云计算使能技术架构
- 2.1 宽带网络和 Internet 架构
- 2.2 数据中心技术
- 2.3 虚拟化技术
- 2.4 Web 技术
- 2.5 多租户技术
- 2.6 服务技术
一、定义与内涵
1.1 定义与内涵
云计算技术包含一些基础的关键技术,这里称为使能技术,包括宽带网络和 Internet 架构、数据中心技术、虚拟化技术、Web 技术、多租户技术、服务技术。就技术而言,云计算融合了各派精华,但仍然自成一派,其表现出的核心意义不仅在于技术的发展,还在于通过各种技术,使人们建立 IT 系统的思路发生变化,同时使架构发生根本性变化。
二、云计算使能技术架构
2.1 宽带网络和 Internet 架构
互联网最大主干网由众多网络业务提供商(Internet Service Provider,简称ISP)协同构建,是一项浩大工程。ISP 投入巨资建设网络基础设施,从铺设海底光缆到架接陆地骨干线路,织就全球信息网络。主干网如同互联网“脊梁”,承担连接不同地域、国家网络的重任,是全球信息互通的关键。
主干 ISP 间通过核心路由器以高速链路相连,采用先进光通信技术,具备超高带宽与低时延,形成信息“高速主干道”,保障海量数据在其间高速交换。以中国移动、中国电信为例,其骨干网络依托雄厚技术实力与广泛布局,在国内外互联网通信中起关键作用,既能应对日常上网流量高峰,如电商节流量洪峰,又能保障跨国企业数据交互、高清视频会议等对网络质量要求严苛的业务。
云服务作为现代信息技术服务的典型模式,涵盖计算资源调配、数据存储调用等多元复杂功能。其稳定交付高度依赖高效网络连接。技术层面,云服务提供商构建大型数据中心,集成超强算力服务器集群处理计算任务,配备海量存储阵列负责数据持久化。若缺网络这一信息传输“纽带”,数据中心资源将被困于“黑匣”。用户的计算请求,如复杂模型运算、海量数据读写操作,无法触达云端资源池,云服务所承诺的弹性扩展、按需分配优势便无法兑现。
2.2 数据中心技术
数据中心能够将彼此相邻的众多 IT 资源进行有效的组织与整合。它以标准化的商用硬件为基础,这种标准化的选择不仅降低了硬件采购的成本与难度,更使得不同设备之间具备了良好的兼容性。
从架构层面来看,数据中心的 IT 资源可细分为物理层和虚拟层。物理层是数据中心的硬件基石,实实在在地呈现着各类设备的物理形态;虚拟层则是基于物理资源,通过虚拟化技术构建出的逻辑资源空间,极大地提升了资源的利用率与灵活性。同时,数据中心采用模块化架构进行设计,将整个数据中心拆解为多个相同的基础设施模块和设备。这种模块化的设计思路,使得数据中心具备了诸多显著优势。
首先是可扩展性,当业务需求增长时,只需简单地添加新的模块,就能轻松实现数据中心规模的扩展,如同搭积木一般便捷高效,无需对整体架构进行大规模的改动。其次是可替代性,一旦某个模块出现故障,可迅速用备用模块进行替换,确保数据中心的正常运行不受较大影响。再者,模块化设计使得硬件更换变得极为快速,能够在短时间内完成硬件的更替,减少因硬件故障导致的业务中断时间。
模块化与标准化的设计理念,不仅为数据中心带来了技术层面的优势,更在经济层面展现出巨大的价值。通过采用标准化的商用硬件和模块化架构,能够有效减少在硬件采购、系统集成以及后期运维等方面的投资和运营成本。大规模的标准化生产与模块化组装,实现了规模经济,使得数据中心在提供强大功能的同时,保持着较高的成本效益。
此外,现代数据中心还具备自动化、远程操作和管理以及高可用性等特性。自动化使得数据中心内的诸多任务,如资源分配、故障检测与修复等,能够自动执行,减少了人工干预,提高了工作效率与准确性。远程操作和管理功能则突破了空间的限制,运维人员可以在任何有网络连接的地方,对数据中心进行实时监控与管理,极大地提升了管理的便捷性与灵活性。而高可用性则是数据中心的生命线,通过冗余设计、容错机制等一系列技术手段,确保数据中心在面对各种突发情况时,依然能够持续稳定地提供服务,保障业务的连续性。
2.3 虚拟化技术
在云计算的架构体系中,虚拟化技术占据核心地位,是推动云计算发展的关键驱动力。它对计算、存储、应用程序及网络设备等各类资源进行深度的高层次抽象。
传统模式下,资源使用者与资源实体紧密耦合,高度依赖特定种类的资源。虚拟化技术通过对底层资源实施统一管理与调度,显著降低了这种耦合程度。它在资源使用者与资源实体间构建起灵活的逻辑层,使使用者无需顾虑资源的具体物理特性与类别。
从资源整合与管理视角看,虚拟化技术将大量物理上分散的计算资源,在逻辑层面整合为一个有机整体。这一过程如同将离散的组件集成为一个有序系统,实现资源的按需分配。在实际应用场景中,不同应用程序对资源需求各异,虚拟化技术能够精准识别这些需求,并依据需求将计算、存储等资源合理分配。
此外,虚拟化技术赋予资源调度高度的灵活性与便捷性。如同精准调控复杂系统,资源调度者可依据业务需求,实时高效地调配资源。无论是调整应用的资源配额,还是在任务间快速转移资源,都能迅速完成。这种强大的资源调度能力,确保各类应用需求均能得到及时有效的满足,无论是小型初创企业的应用,还是大型企业复杂的业务系统,均可在虚拟化技术构建的资源环境中稳定运行并发挥最大效能。
2.4 Web 技术
Web 技术架构作为云计算应用的重要基石,由三个不可或缺的基本元素构成:统一资源定位器(URL)、标记语言( HTML )以及超文本传输协议(HTTP)。
统一资源定位器(URL),作为 Web 世界中资源的唯一标识符,如同现实世界中的地址,精准地定位着网络上的每一个资源,无论是网页、图片、视频还是其他各类文件。它通过特定的协议和路径规则,使得浏览器能够准确无误地找到并获取所需资源,为用户与服务器之间的交互搭建起了桥梁。
标记语言,例如广泛应用的 HTML(超文本标记语言),则负责定义网页的结构与内容展示方式。HTML 使用一系列的标签来描述文本、图像、链接、表格等元素,通过这些标签的组合与嵌套,构建出层次分明、结构清晰的网页布局。浏览器根据 HTML 标签的指示,将网页内容以可视化的形式呈现给用户,从而实现信息的有效传递。
超文本传输协议(HTTP)则是客户端与服务器之间进行数据传输和交互的规则集合。它详细规定了请求和响应消息的格式、内容以及交互流程。当客户端向服务器发送请求时,HTTP 协议确保请求消息按照既定格式准确传达,其中包含请求方法(如 GET、POST 等)、请求头(包含客户端环境、请求资源类型等信息)以及请求体(若有需要传递的数据)。服务器接收到请求后,依据 HTTP 协议规范进行解析,并按照相应逻辑处理请求,随后以符合 HTTP 协议的响应消息格式返回处理结果,包括状态码(如 200 表示成功,404 表示未找到资源)、响应头(包含服务器信息、数据类型等)以及响应体(实际返回的数据内容)。
在 Web 应用的架构设计领域,模型 - 视图 - 控制器(MVC)模式占据着举足轻重的地位。这一模式通过巧妙地将应用程序的不同功能模块进行分离,极大地提升了代码的可维护性、可扩展性以及可测试性。
模型(Model)是应用程序中专注于处理数据逻辑的核心部分。它承担着管理应用程序数据以及执行相关业务规则的重任。例如,在一个电子商务应用中,模型可能负责处理商品信息的存储、查询、更新,以及订单处理的逻辑运算,确保数据的完整性与一致性,同时遵循业务流程的规范。
视图(View)则主要负责用户界面的呈现工作。它的职责在于将模型中所管理的数据,以一种符合用户认知习惯且便于交互的方式展示出来。视图通常依赖于 HTML、CSS 和 JavaScript 等前端技术,将数据转化为直观的网页界面,使用户能够轻松地浏览、操作和理解应用程序所提供的信息。例如,在电商应用中,商品列表页面、购物车页面等都是视图的具体体现,它们根据从模型获取的数据,动态地生成相应的页面展示。
控制器(Controller)则扮演着模型与视图之间的桥梁角色。它接收来自用户的各种输入请求,这些请求可能是点击链接、提交表单等操作触发的。控制器根据接收到的请求,依据预先设定的逻辑,调用模型中的相应方法进行数据处理。例如,当用户在电商应用中提交订单时,控制器会调用模型中的订单处理逻辑,完成库存检查、价格计算等操作。处理完成后,控制器将模型返回的结果传递给合适的视图,以便将处理结果展示给用户。
2.5 多租户技术
多租户技术的核心目标在于实现多个用户,即租户,能够在逻辑层面上同时对同一个应用程序进行访问。这种架构模式的精妙之处在于,它为每个租户营造出一种仿佛独占应用程序的体验。具体而言,每个租户对于应用程序都拥有属于自己独特的视图。这意味着,租户所看到的应用程序界面布局、功能展示等方面,能够依据自身的需求和偏好进行定制呈现。
同时,每个租户还拥有应用程序的专有实例。从技术实现角度来看,这并非是为每个租户创建完全独立的物理应用副本,而是通过巧妙的资源隔离与分配机制,在逻辑上为每个租户模拟出专属的运行环境。在这种环境下,租户的应用操作、数据存储与处理等活动,都在各自独立的空间内进行。例如,通过数据库的分区技术,不同租户的数据能够分别存储在不同的分区中,确保数据的物理隔离;在应用服务器层面,利用容器技术或虚拟机技术,为每个租户提供独立的运行容器或虚拟机,保障应用程序实例的逻辑独立性。
更为关键的是,这种架构模式保证了租户之间的高度隔离性。每个租户不会意识到其他租户的存在,就如同在一个独立的软件世界中进行操作。而且,严格限制了租户之间的数据和配置信息的访问。这不仅是出于数据安全与隐私保护的考量,更是确保各租户业务独立性的必然要求。例如,一家金融机构租户的客户敏感信息,绝不能被其他非相关租户获取或访问,通过严谨的权限控制、数据加密以及网络隔离等技术手段,有效地杜绝了此类风险。
此外,多租户应用还赋予每个租户独立定制专属应用特性的能力。这一特性使得应用程序能够更好地契合不同租户多样化的业务需求。以客户关系管理(CRM)多租户应用为例,某些注重客户服务的租户可能希望定制一套更完善的客户反馈跟踪系统,而另一些侧重于销售拓展的租户则可能更关注潜在客户挖掘功能的强化。通过灵活的模块化设计和配置接口,多租户应用能够满足租户在不影响其他租户的前提下,对应用特性进行个性化定制,从而提升应用程序对不同业务场景的适配性和实用性。
2.6 服务技术
在云计算领域,服务技术无疑占据着基石般的重要地位,它构建起了 “作为服务” 这一云交付模型的底层架构。服务技术涵盖多个关键部分,其中 Web 服务与 REST 服务以及服务代理是其核心组成。
Web 服务包含一系列特定的技术标准与协议。Web 服务描述语言(WSDL)用于对 Web 服务的功能、输入输出参数等进行精确描述,使得其他系统能够清晰了解该服务的使用方式;XML 模式描述语言则为 XML 文档提供了一种模式定义,确保数据格式的一致性与规范性,这对于 Web 服务间的数据交互至关重要;简单对象访问协议(SOAP)作为一种基于 XML 的协议,负责在不同系统间进行结构化信息的交换,实现了平台无关性的远程过程调用;统一描述、发现和集成协议(UDDI)则致力于提供一种标准化的方式,用于发布、查找和集成 Web 服务,极大地增强了服务的可发现性与互操作性。
REST服务(表述性状态传递),作为一种轻量级且简洁的软件架构风格,与传统服务有着显著区别。REST 服务并不具备独立的技术接口,而是共享一个通用的技术接口。这种设计理念使得 REST 服务在资源访问与交互方面更加简洁高效,能够更好地适应分布式系统环境下的多样化需求。
服务代理则是一种基于事件驱动的程序机制。在运行过程中,它会实时拦截消息,并依据预设的规则和逻辑对这些消息进行相应处理。服务代理在云计算环境中扮演着不可或缺的角色,常被用于执行诸如监控、计量等特定任务。通过对系统中各类事件的监听与处理,服务代理能够保障云计算服务的稳定运行与高效管理,确保整个云交付模型的顺利实施。
相关文章:
浅谈云计算03 | 云计算的技术支撑(云使能技术)
云计算的技术支撑 一、定义与内涵1.1 定义与内涵 二、云计算使能技术架构2.1 宽带网络和 Internet 架构2.2 数据中心技术2.3 虚拟化技术2.4 Web 技术2.5 多租户技术2.6 服务技术 一、定义与内涵 1.1 定义与内涵 云计算技术包含一些基础的关键技术,这里称为使能技术…...
使用LinkedList手撕图的邻接表
主要是学习图的邻接表的核心结构等等,话不多说直接上代码: import java.util.LinkedList;public class GrapAdj {private int n ; // 表示图中顶点的数量。private LinkedList<Integer>[] adj;public GrapAdj(int n){this.n n;adj new LinkedLis…...
学习RocketMQ
1.为什么要用MQ? 消息队列是一种“先进先出”的数据结构 其应用场景主要包含以下4个方面: 1.1 异步解耦 最常见的一个场景是用户注册后,需要发送注册邮件和短信通知,以告知用户注册成功。传统的做法有以下两种: …...
sap mm学习笔记
1. 业务流程 2. 组织架构 3. 物料主数据 4.采购主数据 5. 采购管理 6. 库存管理 7.物料主数据 8. 采购申请 ME51N...
Dockerfile 构建java镜像并运行部署java项目
目录 1. 前提准备 2. 什么是Dockerfile 3. 步骤 3.1. 创建目录 3.2. 编写dockerfile文件 3.3. 构建镜像 3.4. 运行容器 3.5. 验证 4. 总结 1. 前提准备 (1) 准备一个jar打包文件,已为大家准备(我这里的包名为 app.jar) 资源链接,点我下载 (2) 已经下载…...
【C语言系列】函数递归
函数递归 一、递归是什么?1.1尾递归 二、递归的限制条件三、递归举例3.1举例一:求n的阶乘3.2举例二:顺序打印一个整数的每一位 四、递归与迭代4.1举例三:求第n个斐波那契数 五、拓展学习青蛙跳台问题 一、递归是什么? …...
windows10 安装 Golang 版本控制工具g与使用
下载包:https://github.com/voidint/g/releases 解压, 并添加到环境变量 g 常用命令 查询当前可供安装的stable状态及所有的 go 版本 # stable 版本 g ls-remote stable# 所有版本 g ls-remote安装目标 go 版本1.23.4g install 1.23.4切换到已安装的…...
WordPress开发进群V2主题,多种引流方法,引私域二次变现
介绍: 全新前端UI界面,多种前端交互特效让页面不再单调,进群页面群成员数,群成员头像名称,每次刷新页面随机更新不重复,最下面评论和点赞也是如此随机刷新不重复 进群页面简介,群聊名称&#…...
在 CentOS/Red Hat Linux 中安装 Docker
在 Red Hat Linux 中安装 Docker 在 Red Hat Linux (RHEL) 中安装 Docker 需要一些准备工作,尤其是针对不同版本的系统(如 RHEL 7、8、9)。以下是具体的安装步骤: 步骤 1:检查系统版本 在安装前,确认系统…...
【DAPM杂谈之二】实践是检验真理的标准
本文主要分析DAPM的设计与实现 内核的版本是:linux-5.15.164,下载链接:Linux内核下载 主要讲解有关于DAPM相关的知识,会给出一些例程并分析内核如何去实现的 /**************************************************************…...
关于使用FastGPT 摸索的QA
近期在通过fastGPT,创建一些基于特定业务场景的、相对复杂的Agent智能体应用。 工作流在AI模型的基础上,可以定义业务逻辑,满足输出对话之外的需求。 在最近3个月来的摸索和实践中,一些基于经验的小问题点(自己也常常…...
虚拟文件系统 VFS
目录 虚拟文件系统 VFS 文件系统挂载过程 虚拟文件系统 VFS 统一标准的系统调用接口: VFS定义了一组标准的文件操作API,如open(), read(), write(), close()等,使得用户空间的应用程序无需关心底层文件系统的具体类型。 下层文件系统必须实现…...
React Fiber框架中的Render渲染阶段——workLoop(performUnitOfWork【beginWork与completeWork】)
触发渲染过程——renderRoot renderRoot 是一个函数,用于触发渲染工作。它通常会调用并递归地执行一系列的渲染任务,直到完成整个更新过程。这个过程包括执行 Fiber 树中的 beginWork 和 completeWork,以及渲染新状态或 DOM。 function ren…...
Xcode 正则表达式实现查找替换
在软件开发过程中,查找和替换文本是一项常见的任务。正则表达式(Regular Expressions)是一种强大的工具,可以帮助我们在复杂的文本中进行精确的匹配和替换。Xcode 作为一款流行的开发工具,提供了对正则表达式的支持。本…...
【opencv】第8章 图像轮廓与图像分割修复
8.1 查找并绘制轮廓 一个轮廓一般对应一系列的点,也就是图像中的一条曲线。其表示方法可能 根据不同的情况而有所不同。在OpenCV 中,可以用findContours()函数从二值图 像中查找轮廓 8.1.1 寻找轮廓: findContours() 函数 findContours) 函…...
excel VBA 基础教程
这里写目录标题 快捷键选择所有有内容的地方 调试VBA录制宏,打开VBA开发工具录制宏,相当于excel自动写代码(两个表格内容完全一致才可以) 查看宏代码保持含有宏程序的文件xlsm后缀(注意很容易有病毒)宏文件安全设置 使…...
2008-2019年各省城镇人口数据
2008-2019年各省城镇人口数据 1、时间:2008-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、城镇人口 4、范围:31省 5、指标解释:城镇人口是指居住在城镇范围内的全部常住人口。 6、下…...
【机器学习】在不确定的光影中:机器学习与概率论的心灵共舞
文章目录 概率与统计基础:解锁机器学习的数据洞察之门前言一、概率论基础1.1 概率的基本概念与性质1.1.1 概率的定义1.1.2 样本空间与事件1.1.3 互斥事件与独立事件1.1.4 概率的计算方法 1.2 条件概率与独立性1.2.1 条件概率1.2.2 独立事件 1.3 随机变量1.3.1 随机变…...
vscode使用Marscode编程助手
下载 vscode 在插件里下载Marscode编程助手 插件完成 在这里点击安装,点击后这里出现AI编程插件。...
谷歌开放语音命令数据集,助力初学者踏入音频识别领域
在人工智能的浪潮中,语音识别技术正逐渐成为我们日常生活的一部分。从智能助手到语音控制设备,语音识别的应用场景越来越广泛。然而,对于初学者来说,进入这一领域往往面临诸多挑战,尤其是缺乏合适的开源数据集和简单的…...
Diffchecker图像比较工具介绍
Diffchecker图像比较工具介绍 网站地址: Diffchecker图像比较 主要功能: 图像差异比较: 该工具允许用户上传两张图片,系统会自动识别并高亮显示这两张图片之间的差异。简单易用: 用户只需将图片拖放到指定区域或点击浏…...
后端开发 Springboot整合Redis Spring Data Redis 模板
目录 redis 配置 RedisConfig 类 完整代码 代码讲解 1. 类定义和注解 2. 定义 RedisTemplate Bean 3. 配置 JSON 序列化 4. 配置 Redis 的 key 和 value 序列化方式 5. 完成配置并返回 RedisTemplate 总结 redis 服务接口实现类 类级别 注入 RedisTemplate 常用 Re…...
极狐GitLab 正式发布安全版本17.7.1、17.6.3、17.5.5
本分分享极狐GitLab 补丁版本 17.7.1, 17.6.3, 17.5.5 的详细内容。这几个版本包含重要的缺陷和安全修复代码,我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS,技术团队已经进行了升级,无需用户采取任何…...
策略模式详解与应用
策略模式(Strategy Pattern),是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互相替换,而应用程序可以在运行时选择使用哪一个算法。策略模式使得算法的变化独立于使…...
Gateway怎么实现限流的
Gateway怎么实现限流的 在API网关(如Spring Cloud Gateway、Kong、Nginx等)中实现限流是为了控制服务请求的频率,从而避免系统过载,确保稳定性和可用性。限流可以通过多种策略实现,常见的方法包括基于请求次数、时间窗…...
OpenCV实现Kuwahara滤波
Kuwahara滤波是一种非线性的平滑滤波技术,其基本原理在于通过计算图像模板中邻域内的均值和方差,选择图像灰度值较为均匀的区域的均值来替代模板中心像素的灰度值。以下是Kuwahara滤波的详细原理说明: 一、基本思想 Kuwahara滤波的基本思想…...
【DevOps】Jenkins使用Pipeline构建java代码
使用Pipeline发布java项目 文章目录 使用Pipeline发布java项目资源列表基础环境一、准备gitlab1.1、部署gitlab1.2、创建chinanews项目1.3、提交代码1.4、查看上传的代码 二、准备Jenkins2.1、部署Jenkins2.2、安装maven2.3、修改Maven源2.4、准备chinanews 三、Jenkins配置工具…...
【网络云SRE运维开发】2025第2周-每日【2025/01/12】小测-【第12章 rip路由协议】理论和实操考试题
文章目录 选择题理论题 解释RIP协议中的“水平分割”机制,并说明其目的。 可以防止路由器错误地将从邻居学到的路由再发送回给该邻居,从而避免路由环路的发生。实操题 【网络云SRE运维开发】2025第2周-每日【2025/01/12】小测-【第12章 rip路由协议】理论…...
Entity 的材质(棋盘、条纹、网格)
Entity 的材质 普通物体的材质 import { nextTick, onMounted, ref } from vue import * as Cesium from cesium // console.log(Cesium, Cesium)const viewer ref<any>(null)onMounted(() > { ... })let material Cesium.Color.YELLOW.withAlpha(0.5)Cesium.Colo…...
shell脚本编写练习3
1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。 #!/bin/bash # 定义文件路径变量 file_path"/tmp/size.log"# 使用if语句检查文件是否存在 if [ -e "$file_path" ] # 检查变量file_path…...
事务的隔离级别和MDL
文章目录 说明不同隔离级别可能发生的现象关键现象解释MDL(元数据锁,Metadata Lock)MDL 的作用MDL 的工作原理MDL 锁的常见场景如何避免 MDL 阻塞 说明 本文章由大模型对话整理而来,如果有错误之处,请在评论区留言指正…...
用户界面软件05
已知应用 几乎所有的流行的用户界面架构都使用这种模式。我在这里举三个例子: 1. Seeheim 用户界面架构的特点是有一个应用核心的领域层和一个用户界面层。后者 被分为两层,叫做表示层和对话控制层。因为这个架构和面向事务系统有渊源,没有…...
基于Springboot + vue实现的办公用品管理系统
🥂(❁◡❁)您的点赞👍➕评论📝➕收藏⭐是作者创作的最大动力🤞 💖📕🎉🔥 支持我:点赞👍收藏⭐️留言📝欢迎留言讨论 🔥🔥&…...
17_Redis管道技术
Redis管道(Pipeline)技术是一种在 Redis 客户端与服务器之间进行高效数据交互的技术。 1.Redis管道技术介绍 1.1 传统请求响应模式 在传统的请求-响应模式下,客户端每发送一个命令后会等待服务器返回结果,然后再发送下一个命令。这种方式在网络延迟较高的情况下会导致性…...
【环境搭建】Metersphere v2.x 容器部署教程踩坑总结
前言 Metersphere部署过程中遇到的问题有点多,原因是其容器的架构蛮复杂的,比较容易踩坑,所以记录一下。 介绍 MeterSphere 是开源持续测试平台,遵循 GPL v3 开源许可协议,涵盖测试管理、接口测试、UI 测试和性能测…...
Vue虚拟DOM:如何提高前端开发效率
前言 随着前端技术的不断发展,越来越多的框架和库涌现出来,其中Vue.js成为了最受欢迎的前端框架之一。Vue.js采用了响应式数据绑定和组件化的思想,让开发者可以更加高效地构建交互式的用户界面。而Vue.js的底层原理涉及到许多概念和技术&…...
【C】预处理详解
在上一篇文章中,简单讲解了一个C程序是如何从一句句C代码变为一个个二进制指令,并最终变成可执行程序成功运行。在预处理、编译、汇编、链接四个步骤中,预处理阶段做的事情特别多,接下来我们就来讲解一下在预处理阶段处理的一些预…...
CES Asia 2025:VR/AR/XR引领科技新潮流
在全球科技领域蓬勃发展的大背景下,CES Asia 2025(赛逸展)即将在京盛大开幕,VR/AR/XR技术作为前沿科技的代表,将在本次展会上大放异彩,展现出令人瞩目的发展趋势和巨大潜力,同时政策优势也将为其…...
Lua调用C#
目录 创建C#入口 Lua调用类 Lua调用枚举 Lua调用数组,列表,字典 Lua调用C#拓展方法 Lua调用C#Ref与Out知识 Lua调用C#函数重载 Lua调用C#委托与事件 Lua调用C#二维数组 Lua调用C#中nil与null的差距 Lua调用C#中让系类型与lua能够互相访问 Lua调用…...
EdgeOne安全专项实践:上传文件漏洞攻击详解与防范措施
靶场搭建 当我们考虑到攻击他人服务器属于违法行为时,我们需要思考如何更好地保护我们自己的服务器。为了测试和学习,我们可以搭建一个专门的靶场来模拟文件上传漏洞攻击。以下是我搭建靶场的环境和一些参考资料,供大家学习和参考࿰…...
springboot使用Easy Excel导出列表数据为Excel
springboot使用Easy Excel导出列表数据为Excel Easy Excel官网:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write 主要记录一下引入时候的pom,直接引入会依赖冲突 解决方法: <!-- 引入Easy Excel的依赖 -->&l…...
现代 CPU 的高性能架构与并发安全问题
现代 CPU 的设计(如多级缓存、指令重排)为了提升性能,引入了许多优化机制,但这些机制可能导致并发场景下的安全性问题。并发安全性主要体现在三个方面:原子性、有序性 和 可见性。这些问题在底层通过 CAS(C…...
【数模学习笔记】插值算法和拟合算法
声明:以下笔记中的图片以及内容 均整理自“数学建模学习交流”清风老师的课程资料,仅用作学习交流使用 文章目录 插值算法定义三个类型插值举例插值多项式分段插值三角插值 一般插值多项式原理拉格朗日插值法龙格现象分段线性插值 牛顿插值法 Hermite埃尔…...
JavaScript 数组及其常用方法
1. JavaScript 数组概述 数组是 JavaScript 中用于存储多个值的数据结构。它可以存储不同类型的元素,并提供强大的方法来操作和管理数据。数组的元素按索引(从 0 开始)进行访问。 2. 数组的创建方式 1) 使用数组字面量 let fruits [&quo…...
SQL HAVING 子句深入解析
SQL HAVING 子句深入解析 介绍 SQL(Structured Query Language)是一种用于管理关系数据库管理系统的标准编程语言。在SQL中,HAVING子句是与GROUP BY子句一起使用的,用于筛选分组后的数据。它根据聚合函数的结果对组进行条件过滤…...
vue3+ts的几个bug调试
由于编译问题,把几个type检查给关闭了,否则错误太多。 1)第一个检查出的问题,拼写错误数组的length,写成了lengh。 2)数组的对象引用。 torStatus Array(8).fill({ ...defaultStatus }) as TorStatus[]…...
git: hint:use --reapply-cherry-picks to include skipped commits
问: 当我在feture分支写完功能,切换到dev更新了远端dev代码,切回feture分支,git rebase dev分支后出现报错: warning skipped previously applied commit 709xxxx hint:use --reapply-cherry-picks to include skippe…...
Microsoft Sql Server 2019 数据类型
数据类型 bigint、int、smallint、tinyint 使用整数数据的精确数字数据类型。 若要节省数据库空间,请使用能够可靠包含所有可能值的最小数 据类型。 例如,对于一个人的年龄,tinyint 就足够了,因为没人活到 255 岁以上。 但对于建筑物的 年龄,tinyint 就不再适应,因为建…...
C++实现设计模式---代理模式 (Proxy)
代理模式 (Proxy) 代理模式 是一种结构型设计模式,它为其他对象提供一个代理以控制对该对象的访问。代理模式常用于延迟加载、访问控制、智能引用等场景。 意图 提供对某对象的控制。控制对目标对象的访问,通常用于在不改变目标对象的情况下࿰…...
微信小程序用的SSL证书有什么要求吗?
微信小程序主要建立在手机端使用,然而手机又涉及到各种系统及版本,所以对SSL证书也有要求,如果要小程序可以安全有效的访问需要满足以下要求: 1、原厂SSL证书(原厂封)。 2、DV单域名或者DV通配符。 3、兼…...