当前位置: 首页 > news >正文

Vercel Serverless

1. 引言

现代应用程序是为适应当前技术环境需求而设计的软件,采用现代开发工具和实践,针对云部署和可扩展性优化。它们由多个模块化小组件组成,便于集成和缩放,具有高度的敏捷性和适应性,能快速响应用户或业务需求变化。

相比传统软件,现代应用程序的优势包括:

  1. 灵活性与可扩展性:模块化架构和云基础设施使其更易适应变化。
  2. 弹性和可靠性:设计上更健壮,能应对故障或高峰负载。
  3. 成本效益:构建和部署更快,开销更低。
  4. 用户体验:注重响应速度、可访问性和可用性,提供更优体验。

下图是 AWS 为用户构建现代化应用所提供的主要的无服务类型的计算服务:

在这里插入图片描述

现代应用程序通常使用敏捷开发方法论进行开发,这种方法强调迭代、协作和以用户为中心的软件开发方法。它们使用现代开发工具和框架,如 React、Angular 和 Vue.js,并经常使用 DockerKubernetes 等技术进行容器化。此外,现代应用程序设计时考虑到基于云的部署和扩展,使用基础设施即代码工具如 Terraform 和云原生服务如 AWS Lambda 。为了确保质量和可靠性,现代应用程序还使用持续集成和交付(CI/CD)实践,自动化构建、测试和部署流程。查看更多服务。

现在让我们假设您是一名 Web 开发人员,并希望使用无服务器的方式将 Web 应用程序部署到云上。虽然如 AWS 这样的云计算服务提供商可以为您提供如 CDN、API 网关、Lambda 、静态存储等各种服务,但如果您是这些服务的首次使用者,将这些服务组合起来,并融入到您的 CI/CD 流程中,学习和部署这些服务的组合会需要一段时间。

Vercel 通过为前端开发人员提供一种基于 JAMStack 的封装以及和云上 Serverless 、CDN 等服务的集成,帮助您解决了以上问题。您只需编写您的应用程序或 API,Vercel 将负责构建并使用无服务器的方式在云上部署。

2. Vercel 公司和服务简介

Vercel 公司(Vercel.com)提供为前端开发者设计的一体化平台,可以高效创建和部署 Web 应用程序。它通过自动配置构建设置和提供详细的构建日志,简化了部署管理过程。同时借助集成的 CI/CD 功能,开发者可以预览其更改,并无缝合并到主分支进行生产部署。Vercel 还支持自定义域名,可以轻松配置并为部署分配个性化的 URL。此外,Vercel 提供了检查、分析和使用情况等监控工具,以跟踪网站性能和用户参与度。借助 Vercel,开发者可以简化开发流程,实现快速、个性化的 Web 内容交付。

Vercel 的整个的架构理念基于如下这幅图所示的 web 应用的演进:

在这里插入图片描述

传统基于三层架构的 web 应用(web 服务器+应用服务器+数据库),适合有经常性的动态内容生成和交互的场景。但如果一个网站绝大部分的内容都不经常更新,比如新闻网站、企业官网、小型电商, CMS(Content Management System)网站,如果使用传统的三层架构,那无论如何都需要一个实时的在线服务,依旧需要大量后端和运维人员维护网站的安全性、稳定性、可伸缩性等。那是否有一种新的可能——通过某种架构,直接动态生成前端页面,并使用 CDN 持续分发静态页面以及数据,从而把内容的管理和内容的显示被完全分隔开来?

3. 什么是 JAMStack

JAMStack 架构在这些场景下给出了新的解决方案:

JAM 是 JavascriptAPIsMarkup 三个术语的首字母组合。简单来说,JAMStack 就是使用 SSG(Static Site Generators)技术,并且不依赖 Web 服务的前端技术栈。

对于 SSR,Next.js 对每个请求在服务器上将页面预渲染为 HTML ,TTFB(首字节到达时间)较慢,但数据始终是最新的。对于 SSG,Next.js 在每个请求之前(例如在构建时)将页面预渲染为 HTML 。HTML 可以由 CDN 进行全局缓存,并且可以立即提供服务。静态生成具有更高的性能,但由于预渲染是提前发生的,数据在请求时可能会变得过时。在 Next.js 中,过期数据的问题,可以通过在构建时间之后逐步添加和更新静态预渲染的页面的方式或者在不包含数据的情况下静态生成页面的部分内容,并由客户端获取更新数据的方式来解决。

所以 JAMStack 并不是传统意义上的静态网站,事实上,JAMStack 包含一个叫 Headless CMS(无头内容管理系统)的后台系统。Vercel 支持很多种流行的 Headless CMS 系统集成。Headless CMS 提供与传统 CMS 相同的丰富协作和创作体验,同时将您的数据作为 API 开放出来。通过 Headless API 就可以将数据与表示层解耦。

综上所述,基于 JAMStack 的网站通常还会有下面的特性:

  • 全站托管于 CDN 上
  • 原子化发布(每次发布都是一次全量、原子性的发布)
  • 灵活的文件缓存策略
  • 基于 Git 的全自动构建、部署流程

在这里插入图片描述

Vercel 在此基础上,对 JAMStack 的理念进行了商业化的落地,结合 AWS 的 AWS Lambda , Amazon S3 – Cloud Object Storage 等服务,Vercel 实现了对 Web 应用的云上无服务化部署。网站的开发人员,只需要专注于代码实现,每一次通过 Github 的代码变更,都会自动触发云上的构建,一个完整的流程包含了对多个云上服务的依次部署和调用。

4. Vercel 部署便利性背后的无服务架构

对于复杂的网站,在构建过程中,Vercel 会使用到 AWS S3 来存储大部分的静态内容,对于每一次的构建,Vercel 都会根据用户购买的服务配额,通过 Amazon Simple Queue Service 服务进行构建任务的排队,同时使用 AWS Fargate 来弹性生成基于容器的构建环境。

构建的产出包含了 Serveless 函数(AWS Lambda ), Edge 函数,优化后的图像,以及静态存储等。

以下就是 Vercel 从构建到发布一个现代化应用的完整过程:

在这里插入图片描述

为了让构建出的环境能够被世界各地的访问者快速访问到,Vercel 利用 Amazon Global Accelerator 服务来进行基于域名的全球加速,使用 GA,不仅利用了 anycast 路由的优点,还可以让托管在 Vercel 上的应用程序获得自动故障转移和 DDoS 保护的好处,从而提高应用弹性和减少攻击影响。

在这里插入图片描述

如上图所示,客户端的请求,会通过域名的加速服务,抵达 Vercel Edge 的某一个最近的部署位置。这是请求进入 Vercel 的 Kubernetes 集群(Amazon EKS)的地方。该请求被检查并过滤以防恶意用户,然后路由到充当反向代理的虚拟机网关。首先,它根据数据(例如传入请求的主机名)确定应向用户提供部署的哪个版本,并获取该部署的元数据。然后,根据请求路径是否与部署元数据中指定的路由匹配,请求要么返回状态代码 404,要么继续生成响应。

针对不同的请求和响应内容,网关会路由到不同的资源上进行处理。上述所有步骤的响应会根据缓存标头进行缓存,以加快将来的查找速度。

借助 Vercel 这样的平台,您可以大大简化现代化应用的部署过程,无需自己设置和维护基础设施架构。Vercel 的部署方式,让你的应用天然具备全球性能和可访问性,确保无论用户位于何处都可以获得最佳的用户体验。

构建在无服务基础上的 Vercel,每周会部署超过百万的 Lambda 函数,并被调用超过 50 亿次。Vercel 帮助 华盛顿邮报(Washinton Post) 平稳度过总统竞选日,帮助 奈飞(Netflix) 大幅度缩短前端的构建时间,更是帮助 Desenio 和 Harry Rosen 这样的电商平台,在类似于国内双十一的促销日平稳地承接了突发的客户流量。

5. 什么是 Fluid Compute

官网的介绍:
Fluid Compute 结合了服务器的效率和无服务器的灵活性,实现了实时、动态的工作负载,例如 API ,流和 AI 。
Vercel 的 CEO 和 CTO 带来的 产品介绍

如果你已经熟悉 VercelServerless FunctionsEdge Functions ,那么 Fluid 将会是你在边缘计算领域体验到的又一次飞跃! Fluid 的目标非常明确:更快、更高效地执行你的边缘函数,为用户带来前所未有的流畅体验。

5.1 Vercel Function 并发

当流量到达我们的数据中心时,它会通过函数负载均衡器路由到函数调用服务。此服务管理的连接范围从单个函数实例到每个函数 100,000 个实例。

在这里插入图片描述

5.2 对比无服务器模型

5.2.1 传统无服务器

这些收益是这样实现的:请记住,在传统的无服务器模型中,每次调用都与单个函数实例绑定。

在这里插入图片描述

在这里插入图片描述

5.2.2 Vercel 并发模式

Vercel 的新系统允许单个实例利用等待后端响应的空闲时间来处理多个调用。

在这里插入图片描述

在这里插入图片描述

总结:

例如,假设一个请求需要 100 毫秒,其中 50 毫秒用于计算,50 毫秒用于等待后端响应。

  • 旧模型:两个请求总共需要 200ms 的计算时间
  • 新模型:一次调用即可处理两个请求,将实际计算时间缩短至约 100 毫秒

在这里插入图片描述

可以看到,同样是四个请求,fluid compute 模式仅需要3s 多一点,但是传统无服务model 下则需要 12s。

5.3 Fluid 的优势和特点:

Fluid Compute 融合了无服务器灵活性和类似服务器的功能。与可能面临冷启动和功能有限等问题的传统无服务器架构不同, Fluid Compute 提供了一种混合解决方案。它克服了无服务器和基于服务器的方法的局限性,发挥了两者的优势,包括:

  • 开箱即用零配置: Fluid Compute 带有预设默认值,可自动优化您的功能,以提高性能和成本效益。
  • 优化并发性:通过处理单个函数实例中的多个调用来优化资源使用率。可与Node.js和Python运行时一起使用。
  • 动态扩展: Fluid Compute 会自动优化现有资源,然后再进行扩展以满足流量需求。这可确保在高流量事件期间实现低延迟,并在较安静的时段实现成本效益。
  • 后台处理:在满足用户请求后,您可以继续使用执行后台任务waitUntil。这可以在后台执行耗时的操作(如日志记录和分析)时提供响应迅速的用户体验。
  • 自动冷启动优化:通过自动字节码优化和生产部署中的功能预热来减少冷启动的影响。
  • 跨区域和可用区故障转移:如果一个可用区 (AZ) 发生故障,则首先故障转移到同一区域内的另一个可用区 (AZ) ,从而确保高可用性。如果该区域内的所有区域都不可用,Vercel 会自动将流量重定向到下一个最近的区域。区域级故障转移也适用于非流动部署。
5.3.1 告别冷启动焦虑

一直以来,Serverless 函数的冷启动问题都是开发者关注的焦点。 想象一下,用户首次访问你的应用,却需要等待几秒钟才能看到内容,这无疑会大大降低用户体验。 而 Fluid 正是为了解决这个问题而生

首先,如果把项目部署到 Vercel 上,Vercel 总是保持至少一个函数处于启动的状态。

在这里插入图片描述

5.3.2 如何开始使用 Fluid:

在这里插入图片描述

  1. 在 Vercel 仪表板导航到您的项目。
  2. 单击“设置”选项卡并选择“功能”部分。
  3. 滚动到Fluid Compute部分并启用Fluid Compute的切换。
  4. 重新部署您的项目以应用更改。
5.3.3 可用的运行时支持

流体计算适用于以下运行时:

  • Node.js
  • Python
5.3.4 优化并发性

Fluid Compute 允许多个调用共享单个函数实例,这对于 AI 应用程序尤其有价值,因为其中诸如获取嵌入、查询矢量数据库或调用外部 API 之类的任务可能受I/O 限制。通过允许在同一实例内并发执行,您可以减少冷启动、最大限度地减少延迟并降低计算成本。

在这里插入图片描述

5.3.5 字节码缓存

使用Node.js 版本 20+时,Vercel 函数使用字节码缓存来减少冷启动时间。这会在 JavaScript 文件首次执行后存储其编译后的字节码,从而无需在后续冷启动期间重新编译。

因此,第一个请求尚未缓存。但是,后续请求受益于缓存的字节码,从而实现更快的初始化。这种优化对于不经常调用的函数尤其有益,因为它们将实现更快的冷启动并减少最终用户的延迟。

字节码缓存仅适用于生产环境,在开发或预览部署中不可用。

对于输出 ESM 的框架,所有 CommonJS 依赖项(例如,、react)都node-fetch将选择加入字节码缓存。

5.3.6 隔离边界和全局状态

在传统的无服务器计算中,隔离边界是指函数的各个实例之间的分离,以确保它们不会互相干扰。这为每个函数提供了一个安全的执行环境。

但是,由于每个功能都使用 microVM 进行隔离,这可能会导致启动时间变慢,因此,当 microVM 处于不活动状态时,您会发现由于空闲时间导致资源使用量增加。

流动计算使用不同的隔离方法。多个调用可以同时共享同一个物理实例(全局状态/进程),而不是为每个函数调用使用一个 microVM。这允许函数共享资源并在同一环境中执行,从而提高性能并降低成本。

在这里插入图片描述

Fluid ComputeVercel 的下一代计算模型,通过融合服务器和无服务器的优势,提供更快、更便宜、更灵活的函数执行方式,无需代码更改即可提升应用的性能和效率。

博客链接

相关文章:

Vercel Serverless

1. 引言 现代应用程序是为适应当前技术环境需求而设计的软件,采用现代开发工具和实践,针对云部署和可扩展性优化。它们由多个模块化小组件组成,便于集成和缩放,具有高度的敏捷性和适应性,能快速响应用户或业务需求变化…...

胜软科技冲刺北交所一年多转港股:由盈转亏,毛利率大幅下滑

《港湾商业观察》施子夫 近期,山东胜软科技股份有限公司(以下简称,胜软科技)递表港交所获受理,独家保荐机构为广发证券(香港)。 在赴港上市之前,胜软科技还曾谋求过A股上市&#x…...

JJJ:linux sysfs相关

文章目录 1.sysfs(属性)文件的创建、读、写1.1 创建流程1.2 open流程1.3 read流程 2.补充2.1 sysfs下常见目录介绍2.2 属性相关2.2.1 简介2.2.2 attribute文件的创建 2.3 sysfs目录如何创建的 1.sysfs(属性)文件的创建、读、写 1…...

vue3 遇到babel问题(exports is not defined) 解决方案

由于我在引用ant-design-vue插件,于是产生了下图的问题。 1.问题分析 Babel 是一个 JavaScript 编译器,主要用于:将 ES6 代码转译为 ES5 代码,以兼容旧版浏览器。处理模块化语法(如 import/export)。 2.解…...

《原型链的故事:JavaScript 对象模型的秘密》

原型链(Prototype Chain) 是 JavaScript 中实现继承的核心机制。每个对象都有一个内部属性 [[Prototype]](可以通过 __proto__ 访问),指向其原型对象。每个对象都有一个原型, 原型本身也是一个对象&#xf…...

Python怎样安装,Windows/Mac/Linux系统安装教程

Python的安装步骤如下,结合不同操作系统和关键注意事项进行说明: 一、Windows系统安装 下载安装包 访问Python官网,点击“Downloads”选择适合的版本(推荐稳定版,如3.9或3.10,避免最新版可能的不兼容问题&a…...

03.08

1. 数字三角形 题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那…...

LeetCode 解题思路 11(Hot 100)

解题思路: 若相等: 直接返回 true。若当前元素大于目标值: 由于列递增,当前列下方所有元素均大于目标值,故排除该列(向左移动)。若当前元素小于目标值: 由于行递增,当前…...

使用websocket,注入依赖service的bean为null

问题:依赖注入失败,service获取不到,提示null 这是参考代码 package com.shier.ws;import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.google.gson.Gson; import com.s…...

【数据结构初阶】---堆的实现、堆排序以及文件中的TopK问题

1.树的概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&…...

【量化策略】均值回归策略

【量化策略】均值回归策略 🚀量化软件开通 🚀量化实战教程 技术背景和应用场景 均值回归策略是一种基于统计学原理的量化交易策略,它假设资产价格会围绕其历史平均水平波动。当价格偏离这个平均水平时,就有可能会回到平均值附…...

设计模式 - 工厂模式 精准梳理精准记忆

1、代码片段 - 带入理解 一、核心模式分类 简单工厂模式(编程习惯,非 GoF 设计模式)工厂方法模式(GoF 创建型模式)抽象工厂模式(GoF 创建型模式) 二、演变过程:咖啡店案例 初始实现…...

WIFI ESP8266以及基础功能介绍

芯片一旦烧写了程序就不可以使用AT指令集,需要重新刷回AT指令库才可以使用 wifi的通信频段是2.4G免费频段。 AT指令 AT(attention)command set.AT指令集或命令集,一般称为AT指令 海斯命令集:Hayes command set 默认…...

面试java做了一道逻辑题,人麻了

题目:给你一个5升水壶,一个6升水壶,去池塘中取水,如何保证最后取出的水是3升? 思考了很久终于想出来了,这里用X5代表5升的桶,X6代表6升的桶: ① 6升桶装满,X50&#xff…...

go语言因为前端跨域导致无法访问到后端解决方案

前端服务8080访问后端8081这端口显示跨域了 ERROR Network Error AxiosError: Network Error at XMLHttpRequest.handleError (webpack-internal:///./node_modules/axios/lib/adapters/xhr.js:116:14) at Axios.request (webpack-internal:///./node_modules/axios/lib/core/A…...

svn删除所有隐藏.svn文件,文件夹脱离svn控制

新建一个文件,取名remove-svn-folders.reg,输入如下内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] "Delete SVN Folders" [HKEY_LOCAL_MACHINE\SOFTWARE\Class…...

Greenplum6.19集群搭建

一,安装说明 1.1环境说明 1、首先确定部署的环境,确定下服务器的端口,一般默认是22的端口; 2、当前这份文档是服务器处于10022端口下部署的(现场生产环境要求,22端口在生产环境存在安全隐患)&…...

C/C++蓝桥杯算法真题打卡(Day4)

一、P11041 [蓝桥杯 2024 省 Java B] 报数游戏 - 洛谷 算法代码&#xff1a; #include<bits/stdc.h> using namespace std;// 计算第 n 个满足条件的数 long long findNthNumber(long long n) {long long low 1, high 1e18; // 二分查找范围while (low < high) {lo…...

TinyWebServer项目笔记——01 线程同步机制封装类

目录 1.基础知识 &#xff08;1&#xff09;RALL &#xff08;2&#xff09;信号量 &#xff08;3&#xff09;互斥量 &#xff08;4&#xff09;条件变量 2.功能 1.基础知识 &#xff08;1&#xff09;RALL RALL全称“Resource Acquisition is Initialization”&#xf…...

如何在Ubuntu上直接编译Apache Doris

以下是在 Ubuntu 22.04 上直接编译 Apache Doris 的完整流程&#xff0c;综合多个版本和环境的最佳实践&#xff1a; 注意&#xff1a;Ubuntu的数据盘VMware默认是20G&#xff0c;编译不够用&#xff0c;给到50G以上吧 一、环境准备 1. 安装系统依赖 # 基础构建工具链 apt i…...

算法006——和为S 的两个数

力扣——查找总价格为目标值的两个商品点击跳转 注意题目中的关键信息升序 我们利用双指针&#xff0c;不管 target 是多少&#xff0c;让一个指针指向最小值&#xff0c;让一个指针指向最大 那么&#xff0c;共有三种情况 我们首先遇到的是第二种情况 sum < target left …...

物联网设备接入系统后如何查看硬件实时数据?

要在软件中实时查看硬件设备的信息&#xff0c;通常需要结合前后端技术来实现。以下是设计思路和实现步骤&#xff1a; 1. 系统架构设计 实时查看硬件设备信息的系统通常采用以下架构&#xff1a; 数据采集层: 硬件设备通过传感器采集数据&#xff0c;发送到InfluxDB。数据存…...

CSS—属性继承与预处理器:2分钟掌握预处理器

个人博客&#xff1a;haichenyi.com。感谢关注 1. 目录 1–目录2–属性继承3–预处理器 2. 属性继承 像Android里面继承extends&#xff0c;类继承&#xff0c;子类可以使用父类的public和protected的属性和方法。子类可以直接用。   在CSS里面也是类似的。CSS里面是布局里面…...

前端知识点---http.createHttp()的理解(arkts)

通俗易懂的例子&#xff1a;点外卖 &#x1f354;&#x1f964; 想象一下&#xff0c;你在家里点外卖&#xff0c;HTTP 请求就像是你和餐厅之间的沟通方式。 1️⃣ 没有 http.createHttp()&#xff1a;每次点餐都重新拨电话 &#x1f4de; 如果你每次点餐都重新拨打餐厅的电话…...

信息安全访问控制、抗攻击技术、安全体系和评估(高软42)

系列文章目录 信息安全访问控制、抗攻击技术、安全体系和评估 文章目录 系列文章目录前言一、信息安全技术1.访问控制2.抗攻击技术 二、欺骗技术1.ARP欺骗2.DNS欺骗3.IP欺骗 三、抗攻击技术1.端口扫描2.强化TCP/IP堆栈 四、保证体系和评估1.保证体系2.安全风险管理 五、真题在…...

【深度学习】宠物品种分类Pet Breeds Classifier

文章目录 宠物品种数据集制作宠物品种标签图像预处理Presizing 损失函数loss观察模型的性能提升模型的性能learning rate finder使用CLR算法训练选择学习率的策略重新训练 迁移学习微调fine_tunefit_one_cycle有判别力的学习率 选择epoch的数量更深的网络架构 宠物品种数据集 …...

PyQt组件间的通信方式

PyQt组件间的通信方式 PyQt组件间的通信方式 1. 组件介绍 1.1 组件的定义1.2 组件的分类 2. 组件的通信方式 2.1 信号与槽&#xff08;Signal & Slot&#xff09; 1. 组件介绍 在 Qt 框架中&#xff0c;‌组件‌&#xff08;Component&#xff09;是构建图形用户界面&am…...

基于编译器特性浅析C++程序性能优化

最近在恶补计算机基础知识&#xff0c;学到CSAPP第五章的内容&#xff0c;在这里总结并且展开一下C程序性能优化相关的内容。 衡量程序性能的方式 一般而言&#xff0c;程序的性能可以用CPE&#xff08;Cycles Per Element&#xff09;来衡量&#xff0c;其指的是处理每个元素…...

在 Docker 中搭建GBase 8s主备集群环境

本文介绍了如何在同一台机器上使用 Docker 容器搭建GBase 8s主备集群环境。 拉取镜像 拉取GBase 8s的最新镜像 docker pull liaosnet/gbase8s或者docker pull liaosnet/gbase8s:v8.8_3513x25_csdk_x64注&#xff1a;在tag为v8.8_3513x25_csdk_x64及之后的版本中&#xff0c;…...

hadoop集群环境配置

目录 VMware虚拟机安装 Xshell安装 网络问题 centos7下载 ---------参考以下视频步骤进行生态搭建---------- 搭建好hadoop01 克隆出hadoop02、hadoop03 启动三台虚拟机 打开终端 输入 记录下各个ip 打开Xshell&#xff0c;新建会话 修改主机名 配置静态IP 主机名称…...

Hive-优化(参数优化篇)

map 数和reduce数 控制hive任务中的map数 合适的map数&#xff0c;会让资源分配的更平均&#xff0c;让我们的代码运行更快&#xff0c;通常情况下&#xff0c;作业会通过input的目录产生一个或者多个map任务。我们可以通过调整参数来控制运行过程中的map数。 Hive Map的数量…...

深度学习|MAE技术全景图:自监督学习的“掩码魔法“如何重塑AI基础

一、引言&#xff1a;深度学习的困境与自监督的曙光 深度学习&#xff08;Deep Learning&#xff09;无疑是当今人工智能领域基础中的基础。从图像识别到自然语言处理&#xff08;NLP&#xff09;&#xff0c;它在无数任务中展现了卓越性能。例如&#xff0c;在安防监控中&…...

学习threejs,使用LineBasicMaterial基础线材质

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.LineBasicMaterial1.…...

第本章:go 切片

注意&#xff1a; 切片必须要初始化 才能使用 &#xff0c;切片是引用类型 a :[]int{} // 这上叫始化 此时并没有申请内存 // 如果要追加值的话&#xff1a; append ints : append(a, 1, 2, 3)a : make([]int,5) // 声明切片类型var a []string //声明一…...

dify + ollama + deepseek-r1+ stable-diffusion 构建绘画智能体

故事背景 stable-diffusion 集成进 dify 后&#xff0c;我们搭建一个小智能体&#xff0c;验证下文生图功能 业务流程 #mermaid-svg-6nSwwp69eMizP6bt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6nSwwp69eMiz…...

Java基础面试题全集

1. Java语言基础 1.1 Java是什么&#xff1f; • Java是一种广泛使用的编程语言&#xff0c;最初由Sun Microsystems&#xff08;现为Oracle公司的一部分&#xff09;于1995年发布。它是一种面向对象的、基于类的、通用型的编程语言&#xff0c;旨在让应用程序“编写一次&…...

基于multisim的自动干手器设计与仿真

1 设计的任务与要求 设计一个输出 5V 的直流稳压电源。用开关的闭合模拟手挡住光线的功能。用灯的亮灭模拟烘干吹风功能。 2 方案论证与选择 2.1 自动干手器的系统方案 本设计由5V直流电源、红外发射电路、红外接收电路、灯模拟电路构成。 1. 5V直流电源系统 这一部分是整…...

three.js 在 webGL 添加纹理

在我们生成了3D设计之后&#xff0c;我们可以添加纹理使其更加吸引人。在 webGL 和 p5.js中&#xff0c;可以使用 gl.texImage2D() 和 texture() API来为形状应用纹理。 使用 webGL 在 webGL 中&#xff0c;gl.texImage2D() 函数用于从图像文件生成2D纹理。该函数接受许多参…...

Docker 部署 MongoDB 并持久化数据

Docker 部署 MongoDB 并持久化数据 在现代开发中&#xff0c;MongoDB 作为 NoSQL 数据库广泛应用&#xff0c;而 Docker 则提供了高效的容器化方案。本教程将介绍如何使用 Docker 快速部署 MongoDB&#xff0c;并实现数据持久化&#xff0c;确保数据不会因容器重启或删除而丢失…...

SpringBoot优雅关机,监听关机事件,docker配置

Spring Boot 提供了多种方法来实现优雅停机&#xff08;Graceful Shutdown&#xff09;&#xff0c;这意味着在关闭应用程序之前&#xff0c;它会等待当前正在处理的请求完成&#xff0c;并且不再接受新的请求。 一、优雅停机的基本概念 优雅停机的主要步骤如下&#xff1a; …...

网络基础(一)【网络发展/认识协议/网络 VS 系统/以太网通信原理/重谈协议/网络中的地址管理】

网络基础&#xff08;一&#xff09; 1. 网络的发展2. 认识协议3. 网络 VS 系统4. 以太网通信原理5. 重谈协议6. 网络中的地址管理 1. 网络的发展 最开始时&#xff0c;计算机之间相互独立。 但是为了协作完成一些任务&#xff0c;就产生了计算机之间相互通讯的需求&#xff0c…...

PostgreSQL、SQL Server和MySQL数据库性能调优与故障排除技术

通过结合具体技术特性与工具链的深度使用&#xff0c;可系统化提升数据库性能和稳定性。建议根据实际负载特征制定监控-分析-优化的闭环管理流程。 数据库技术&#xff1a; PostgreSQL 13&#xff1a;逻辑复制、分区表、并行查询、监控工具&#xff08;如pg_stat_statements、…...

本地YARN集群部署

请先完成HDFS的前置部署&#xff0c;部署方式可查看:本地部署HDFS集群https://blog.csdn.net/m0_73641796/article/details/145998092?spm1001.2014.3001.5502 部署说明 组件配置文件启动进程备注Hadoop HDFS需修改 需启动: NameNode作为主节点 DataNode作为从节点 Secondary…...

Redis数据结构——list

目录 列表命令 lpush lrange lpushx rpush rpushx lpop rpop lindex linsert llen lrem ltrim lset blpop / brpop 命令总结 编码方式 list相当于数组或者顺序表,但并不是简单的数组&#xff0c;更接近于C中的"双端队列"(deque)。 最左侧的下标…...

World of Warcraft [CLASSIC] BigFoot BiaoGe

World of Warcraft [CLASSIC] BigFoot BiaoGe 金团表格插件 设置60秒拍卖装备时间 ALT 鼠标左键&#xff0c;点击装备&#xff0c;弹出对话框&#xff0c;填写 1&#xff09;拍卖时间默认60秒&#xff0c;起拍价&#xff0c; 2&#xff09;点击【开始拍卖】 团队所有安装了…...

CentOS Docker 安装指南

CentOS Docker 安装指南 引言 Docker 是一个开源的应用容器引擎&#xff0c;它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。Docker 容器是完全使用沙箱机制&#xff0c;相互之…...

PHP:phpstudy无法启动MySQL服务问题解决

文章目录 一、问题说明二、解决问题 一、问题说明 我的Windows10系统&#xff0c;之前安装过MySQL5.7的版本。 然后&#xff0c;用phpstudy安装MySQL8&#xff0c;并启动MySQL8。 发生无法启动的情况。 二、解决问题 1、删除本地MySQL7的服务 net stop MySQL //这里的服务名…...

【电控笔记z29】扰动估测器DOB估测惯量J-摩擦系数B

基本原理 扰动估测器的核心思想是通过向电机系统施加特定的扰动信号&#xff0c;观察系统响应的变化&#xff0c;然后利用系统的动态模型和控制理论来估计未知参数&#xff0c;如惯量和摩擦系数 。一般基于电机的运动方程建立数学模型&#xff0c;结合观测到的电机实际运行数据…...

STM32-I2C通信外设

目录 一&#xff1a;I2C外设简介 二&#xff1a;I2C外设数据收发 三&#xff1a;I2C的复用端口 四&#xff1a;主机发送和接收 五&#xff1a;硬件I2C读写MPU6050 相关函数&#xff1a; 1.I2C_ GenerateSTART 2.I2C_ GenerateSTOP 3.I2C_ AcknowledgeConfig 4.I2C…...

计算机二级MS之PPT

声明&#xff1a;跟着大猫和小黑学习随便记下一些笔记供大家参考&#xff0c;二级考试之前将持续更新&#xff0c;希望大家二级都能轻轻松松过啦&#xff0c;过了二级的大神也可以在评论区留言给点建议&#xff0c;感谢大家&#xff01;&#xff01; 文章目录 考题难点1cm25px…...