云计算-Azure Functions :构建事件驱动的云原生应用报告
云计算导论
课程研究报告
Azure Functions :构建事件驱动的云原生应用
摘要:
Azure Functions 是一种无服务器解决方案,是由微软 Azure 平台提供的,可以使用户专注于业务逻辑,减少代码的编写,减少需要维护的基础结构并节省成本,不需要管理底层的基础设施。
在云计算的发展进程中,Serverless 架构实现重大突破,将基础设施提升到了新的高度。Azure Functions作为Serverless的主要实现,推动了事件驱动架构在云原生应用上的深化。
关键字:Azure Functions、Serverless、云原生、事件驱动架构
1无服务器计算的基石:事件驱动与按需执行
Azure Functions 的核心理念之一就是事件驱动。在函数代码的执行中,不是持续运行等待请求的,而是由触发器触发特定事件,按需执行。
1.1事件驱动模型
该模型主要由触发器和绑定两部分组成。
触发器:
触发器是函数的入口,函数的启动方式由它决定。当触发器接收到特定事件发生的信息时,它就会自动激活并执行函数。
常见的触发器类型有HTTP触发器、Timer 触发器、Azure Blob Storage 触发器、Azure Queue Storage 触发器、Azure Service Bus 触发器、Azure Event Hubs 触发器、Azure Cosmos DB 触发器、Azure Cosmos DB 触发器等。每种触发器的内部都有自己一套监听机制,当事件发生的时候,触发器会打包相关数据信息作为输入,传递给函数。
绑定:
绑定的声明式方式将Azure 服务的数据连接到函数上去,这样能简化数据的输入输出。这样下来,用户就可以不需要编写复杂的SDK代码来实现想要的功能。
绑定分为三种内容:输入绑定、输出绑定、双向绑定。输入绑定是将从外部读取的直接传递给函数;输出绑定是将函数的处理结果写入外部数据源;双向绑定可以在一个绑定声明中同时进行读写操作。在Azure Functions在运行时,需要处理绑定的底层逻辑,要与目标建立连接,处理数据的输入绑定与输出绑定,并进行序列化与反序列化。
1.2多语言支持
Azure Functions 可以使用多种语言,比如 C#、Java、JavaScript、Python、PowerShell、Rust、Go等。
Azure Functions 提供了与多种流行开发工具的集成,比如 Visual Studio、Visual Studio Code、Maven、IntelliJ IDEA等。
1.3云计算关联
触发器与绑定体现了云计算中的的弹性、事件响应能力和云服务间的集成和自动化的能力,让云服务能够动态变化,按需分配资源,让数据在多个服务之间的流动变得简单、声明化和高效。
2运行时环境与执行模型
Azure Functions 的Azure Functions Host组件,负责处理函数的代码,触发器与绑定,监听事件源等。Host还可以处理日志记录、监控性能等。
2.1函数生命周期
当事件发生时,触发器传递事件数据,在消耗计划下且没有可用实例时,可能经历冷启动过程完成资源分配和运行时初始化;Host随后将内容传递给函数代码执行业务逻辑,输出绑定返回结果,同时记录执行日志和监控数据;完成后,闲置实例会根据计划类型被回收或保持预热状态。
2.2 Durable Functions:在无服务器中实现有状态工作流
Durable Functions是Azure Functions的一个扩展,它允许用户在无服务器环境中编写有状态的工作流,旨在克服传统的无状态限制。
2.3核心概念与模式
Orchestrator Functions定义了工作流中业务流程的逻辑顺序。
Activity Functions 是工作流中执行实际工作的基本单元,是无状态的,可以被编排函数调用多次。
Entity Functions 用于读取和更新小块的持久化状态,可以看作是具有唯一标识符的持久化对象或小型服务,实体函数通过操作修改其状态。
Client Functions 是与 Durable Functions 工作流交互的入口点,用于启动新的编排实例、查询现有编排的状态、向正在等待的编排发送事件或终止编排。
Durable Functions 支持多种常见的有状态应用模式,常见的有:Function Chaining、Fan-out/Fan-in、异步 HTTP API、Monitor、Human Interaction
状态管理与持久化:Durable Functions 的核心是 Durable Task Framework。该框架在后台使用 Azure Storage来持久化编排函数的状态、执行历史和消息。当编排函数 `await` 一个活动函数或定时器时,它实际上是将控制权交还给 Durable Task Framework,并将保存其当前状态到 Azure Storage。当等待的操作完成时,框架会重新激活编排函数,并从存储中恢复其状态,使其从上次中断的地方继续执行。
2.4云计算关联
Durable Functions 对Serverless架构的应用进行了扩展,对于简单的、无状态的事件处理,Serverless不再有局限性,而且能够胜任更复杂的、有状态的业务流程自动化。这使用户可以更充分地利用云计算的优势来构建复杂的分布式系统。
3托管与部署选项:适应不同云计算需求
Azure Functions 提供了多种托管计划和部署选项,以满足不同应用场景对性能、成本、可伸缩性和控制级别的需求。
3.1托管计划深度对比
主要的托管计划包括消耗计划、高级计划和专用计划(应用服务计划)。
Azure Functions 托管计划对比表
特性 | 消耗计划 | 高级计划 | 专用计划 |
核心机制 | 事件驱动动态伸缩,按执行付费 | 预热实例,高性能 | 预分配虚拟机资源 |
伸缩行为 | 从零到高并发,自动 | 可配置最小/最大实例,自动 | 手动或基于计划规则自动 |
冷启动 | 可能发生,对延迟敏感应用有影响 | 通过预热实例显著减少或消除 | 始终开启实例,无冷启动 |
计费模型 | 按执行次数、执行时间 (GB-秒)、内存 | 按预配置实例核心数/内存及时长、执行量 | 按 App Service 计划层级和时长 |
VNet 集成 | 有限(通过混合连接或专用终结点,较复杂) | 支持 | 支持 |
执行超时 | 默认5分钟,最长10分钟 | 默认30分钟,最长可配置为无限 (60分钟保证) | 默认30分钟,最长可配置为无限 (60分钟保证) |
适用场景 | 事件驱动突发负载、成本敏感、开发测试 | 低延迟、避免冷启动、VNet 连接、长时间运行 | 已有 App Service 投资、固定成本、稳定性能 |
3.2容器化部署
Azure Functions 支持将函数打包成 Docker 容器进行部署,这为开发者提供了更大的灵活性和控制力。
支持平台有:Azure Container Apps、Azure Kubernetes Service 、自托管 Kubernetes
此方法进行部署的优势有:完全控制运行时环境,与现有容器化工作流集成;拥有可移植性,可以在任何支持 Docker 的环境中运行。
Functions 工具支持:Azure Functions Core Tools 。
部署署策略与 DevOps 集成:
开发工具集成:Visual Studio 和 Visual Studio Code。
Azure Functions Core Tools:本地开发的核心命令行工具。
部署方法有:Zip Deploy,将函数应用打包成 zip 文件的部署方法;Run From Package, 类似于Zip Deploy,但是它是将函数代码直接从上传的包文件中运行的;Web Deploy,将项目发布到 Azure,通常是用于Visual Studio的方法;容器注册表,用于容器化部署,先将镜像推送到注册表,然后配置托管平台从中拉取镜像;外部包URL,函数代码包可以托管在外部URL,Functions 运行时会从中下载并运行。
CI/CD 集成有:Azure DevOps Pipelines,创建构建和发布管道并自动化完成从代码的提交到部署到 Azure Functions 的整个过程;GitHub Actions,在GitHub中定义工作流实现与代码紧密集成的自动化构建和部署;部署槽,用于高级计划和专用计划,允许部署新函数应用到一个预备环境进行测试和验证,然后实现与生产环境无缝切换。
3.3云计算关联
容器化部署展现了Serverless与容器化趋势的融合,Serverless的灵活性与容器的可控性和可移植性的结合让我们为构建现代云原生应用而得到了更多帮助与选择。
4 性能优化与最佳实践:构建高效可靠的云应用
4.1深入理解与优化冷启动
有多种策略可以缓解冷启动。第一,关于高级计划的预热实例 ,我们可以通过对预热实例进行配置,保证始终有实例准备好处理请求;第二,是进行消耗计划优化策略,可以需要选择适合的语言进行运行,可以对代码和依赖项进行最小化处理,也可以使用 "Run From Package"来保持函数实例活跃。第三,关于Durable Functions 预热,通过触发编排,调用一些关键的活动函数,来进行预热。
4.2安全性
身份验证与授权的方式有:Function Keys、集成 Azure Active Directory、输入验证。
密钥与机密管理方式有:使用 Azure Key Vault、通过 Managed Identity访问 Key Vault、避免在代码或配置文件中硬编码机密。
网络安全方面:使用VNet 集成和专用终结点、配置入站和出站 IP 限制。
最小权限原则:为函数应用及其托管标识分配执行其任务所需的最小权限。
4.3成本优化策略
要实现成本的优化需要拥有良好的策略。第一,要拥有合适的托管计划,根据工作负载,选择最合适的计划,比如消化计划、高级计划、专用计划;第二,可以通过监控执行和资源的消耗,使用Azure Monitor 和 Application Insights紧密追踪函数的执行过程与状态,识别高成本的部分进行优化;第三,通过减少不必要的函数调用等方法,对代码进行优化,减少函数执行时间;第四,合理分配内存空间,配置的空间不要过大过小。
4.4可观测性:监控、日志与追踪
拥有良好的可观测性对我们理解函数、发现问题、优化性能、保证可靠性有着极大的优势。在Azure Functions中,我们使用其中的Application Insights来进行监控方面的处理。Application Insights能够主动收集各项数据,包括请求、异常、指标、日志等。在分布式追踪中,Application Insights可以将一个请求流经多个函数或服务的操作联结起来,为我们提供追踪视图。还有Live Metrics Stream也能够提供几乎实时的函数执行视图。
在结构化日志中,使用 `ILogger` 接口来编写日志。
参考文献
- Microsoft Azure官方文档:《Azure Functions 概述》
- Microsoft Azure官方文档:《Azure Functions的存储注意事项》
- Microsoft Azure官方文档:《Azure Functions与Cosmos DB集成示例》
- Microsoft Azure官方文档:《Azure Functions最佳做法》
- Microsoft Azure官方文档:《Azure Functions安全概念》
- GitHub:《Azure集成服务应用模板示例》
- 博客文章:《优化Azure Functions冷启动》
相关文章:
云计算-Azure Functions :构建事件驱动的云原生应用报告
云计算导论 课程研究报告 Azure Functions :构建事件驱动的云原生应用 摘要: Azure Functions 是一种无服务器解决方案,是由微软 Azure 平台提供的,可以使用户专注于业务逻辑,减少代码的编写,减少需要维护…...
【笔记——李沐动手学深度学习】2.3 线性代数
2.3.1 标量 标量由只有一个元素的张量表示。 下面的代码将实例化两个标量,并执行一些熟悉的算术运算,即加法、减、乘法、除法和指数。 2.3.2 向量 人们通过一维张量表示向量。一般来说,张量可以具有任意长度,取决于机器的内存限…...
多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文
基于 context.py 固化 Jenkins Job 上下文的完整方案,适用于你当前的工作流(Python Jenkins Pipeline),解决: 多个 Job 并发运行时共享配置文件导致上下文污染;读取环境变量或 JSON 文件时被其他 Job 修改…...
github 上的php项目
github 上的php项目 项目的网址 (Loong1996/LikeGirlSite: 情侣网站、情侣网页、恋爱记录网站) # 修改 # admin/Config_DB.php//localhost 为数据库地址 一般使用默认的即可 或(127.0.0.1) $db_address "mysql_php";/…...
防火墙快速管理软件,66K超小巧
软件介绍 今天为大家推荐一款轻量级的Windows防火墙管理工具,这款工具能帮助用户快速开启或关闭系统防火墙功能,操作比系统原生设置更加便捷高效。 软件优势 相比通过系统设置层层点击的操作方式,这款仅66KB大小的微型工具只需单击按钮…...
入门级STM32F103C8T6无人机遥控(原理图)
一、STM32主控电路 一、STM32 主控电路 把 STM32 想象成 “机器人的大脑”,核心电路是 “大脑的基础保障”:让大脑有电、有心跳(时钟 )、能复活(复位 )。 1. 电源引脚(VDD、VDDA、VSS 等 &#…...
无人机灯光驱动模块技术解析
一、运行方式 1. 核心流程: 指令接收:灯光控制模块通过无线通信链路(如WiFi, 数传电台,或专用的表演控制链路)接收来自地面站或中央控制系统的灯光指令。指令包含:颜色(RGB/RGBW值࿰…...
React + Umi(Umijs/Max) 搭建项目及配置
文章标题 01 环境准备02 快速构建2.1 参数选项2.2 umix 还是 umijs/max2.3 使用 pnpm (推荐)2.4 使用 npm 和 yarn2.5 启动项目2.6 启用 Prettier(可选)2.7 打包部署发布 03 Tailwind CSS 插件(可选)3.1 安…...
React 第六十四节Router中HashRouter的使用详细介绍及案例分析
前言 HashRouter 是 React Router 提供的一种路由实现方案,它使用 URL 的 hash 部分(# 后面的内容)来实现客户端路由功能。 一、HashRouter 的核心用途 客户端路由:在不刷新页面的情况下管理应用导航兼容性:支持不支…...
Linux RDMA网络配置手册
一、配置前准备工作 在进行 RDMA 网络配置之前,请确保以下准备工作已完成: 硬件环境 确保服务器支持 RDMA 功能,例如支持 InfiniBand 或 RoCE(RDMA over Converged Ethernet)的网卡。确保网络交换设备支持 RDMA 协议…...
sentinel与seata组件在微服务中的基本作用
微服务基础内容: 在微服务中,首先学习了微服务的横向拆分与纵向拆分,纵向拆分指按照功能拆分模块,横向拆分指将高复用的模块单独拆分,使纵向拆分的模块去调用这部分内容。 学习了基本拆分后,需要知道微服…...
Springboot 集成多数据源pgSql+mysql,启动报错
一.错误信息: 2025-06-25 20:25:50.870 ERROR [ai-manage-center,,] --- [ruid-ConnectionPool-Create-1057240219] DruidDataSource : create connection SQLException, url: jdbc:postgresql://10.10.60.227:5432/ai_dify1?sslmodedisable¤tSchemapub…...
南宫28NG相信品牌力量/Vue 3 中的组合式 API(Composition API)进阶实战
南宫28NG相信品牌力量【罔丨止:MGTY.PW】 点击此处复制到浏览器打开 随着 Vue 3 的普及,Composition API 已成为现代 Vue 开发的主流。本节我们将深入掌握组合式 API 的进阶用法,涵盖响应式工具、生命周期钩子封装、自定义逻辑抽离等关键技术…...
实战使用 Docker Compose 搭建 Redis Cluster 集群
文章目录 前言技术积累Docker Compose简介Redis Cluster简介Redis Cluster 解决的问题 实战演示部署环境创建目录编写Redis配置文件编写Docker-Compose.yml执行yml文件,启动容器查看容器状态创建集群验证集群集群数据验证 总结 前言 随着互联网技术的发展ÿ…...
Tauri(2.5.1)+Leptos(0.8.2)开发自用桌面小程序--DeepSeek辅助编程(俄罗斯方块)
在之前工作基础上(Tauri(2.5.1)Leptos(0.8.2)开发自用桌面小程序-CSDN博客),继续进行自用桌面小程序的开发,这次完全使用DeepSeek辅助编程做一个俄罗斯方块游戏,大部分代码由DeepSeek自主完成,Bug扔给DeepS…...
flex布局实例:把色子放进盒子里
目录 一、flex布局实例:把色子放进盒子里 1、基础样式 二、justify-content 属性 三、flex-direction 属性 四、align-items 属性 五、flex-wrap 属性 二、flex布局应用到常见场景 非常详细的讲解flex布局,看一看,练一练! …...
【启发式算法】RRT*算法详细介绍(Python)
📢本篇文章是博主人工智能(AI)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅…...
基于R语言的亚组分析与森林图绘制1
亚组分析是临床研究中的重要分析方法,其核心是通过将研究对象按基线特征(如年龄、性别或吸烟状况等)划分为不同亚组,进而评估干预措施或暴露因素在各亚组中对结局影响的差异性。 在亚组分析中,交互作用(P for interaction)是关键指标,用于判断干预措施或暴露因素与亚组…...
idea, CreateProcess error=206, 文件名或扩展名太长
idea, CreateProcess error206, 文件名或扩展名太长 解决 “CreateProcess error206, 文件名或扩展名太长” 错误 CreateProcess error206 是 Windows 系统特有的错误,表示命令行参数超出了 Windows 的 32767 字符限制。这个问题在 Java 开发中尤其常见,…...
aspose.word在IIS后端DLL中高并发运行,线程安全隔离
aspose.word在IIS后端DLL中运行,加载很慢,如何为全部用户加载,再每个用户访问时在各自线程中直接可以打开WORD文件处理 Aspose.Words 在 IIS 中优化加载性能方案 针对 Aspose.Words 在 IIS 后端 DLL 中加载缓慢的问题,我们可以通过单例模式预加载组件并结合线程安…...
day042-负载均衡与web集群搭建
文章目录 0. 老男孩思想-面试官问:你对加班的看法?1. 负载均衡2. 搭建负载均衡的WordPress集群2.1 负载均衡服务器2.2 配置web服务器2.3 测试 踩坑记录1. /var/cache/nginx权限问题 0. 老男孩思想-面试官问:你对加班的看法? 互联网公司没有不加班的&a…...
DuDuTalk | 武汉赛思云科技有限公司通过武汉市人工智能企业认定!
近日,2025年武汉市人工智能企业名单正式公布!武汉赛思云科技有限公司(以下简称赛思云科技)凭借卓越的技术实力与创新成果,成功入选武汉市人工智能企业。这是对公司长期深耕AI语音智能领域、推动数字化转型的高度认可&a…...
Tita CRM飞书协同版:解锁企业销售与交付管理新效能
数字化转型的破局之道 在数字经济加速发展的今天,传统管理模式正面临前所未有的挑战: • 销售过程缺乏可视化管控手段 • 项目执行存在严重的信息孤岛 • 跨部门协作效率持续低下 • 绩效考核缺乏客观数据支撑 Tita CRM作为专业的智能化管理平台&#x…...
web安全之h2注入系统学习
起初是在N1 Junior 2025 上面碰到一题,考点是h2的sql注入。由于之前没有见过,趁此机会系统学习一番 实验代码 public class H2Inject {public static void main(String[] args) throws Exception{JdbcDataSource dataSource new JdbcDataSource();dataS…...
LVS-DR负载均衡群集深度实践:高性能架构设计与排障指南
目录 一、核心原理与理论 二、背景与架构设计 三、全流程部署步骤 1. NFS共享存储配置(192.168.7.100) 2. Real Server节点配置(四台服务器) 3. Director服务器配置 四、常见问题解决方案 五、生产环境总结 拓扑示意图&am…...
Java如何导出word(根据模板生成),通过word转成pdf,放压缩包
<!-- 导出word文档所需依赖--><dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.10.0-beta</version></dependency><dependency><groupId>org.apache.poi</gr…...
.NET 7.0 EF Core:一、创建Web API 项目基础框架和用户表的增删改查
demo 地址: https://github.com/iotjin/Jh.Admin.NETCore 代码不定时更新,请前往github查看最新代码 .NET 7.0 EF Core:一、创建Web API项目 官方教程序一、项目目录结构各层职责说明1️⃣ Admin.NETCore.API(接口层)2️⃣ Admin.…...
一篇文章了解XML
一、什么是 XML? XML 是一种结构化数据的标记语言,用来存储、传输和描述数据。 它和 HTML 很像,但它的标签是自定义的,不限定格式和外观,而是强调数据的结构和含义。 XML不是用来展示数据的,HTML是用来展…...
Windows下安装zookeeper
有关Linux安装zk的文章可以参考下我之前写的: Zookeeper 3.8.4 安装和参数解析 Windows下的下载和Linux是一样的,都是同一个包,目前zk稳定版是 3.8.4 下载解压后 在根目录下创建 data 文件夹用来存放数据文件 在 conf 文件夹中,…...
计算机网络 网络层:控制平面
在本章中,包含网络层的控制平面组件。控制平面作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报,而且控制网络层组件和服务如何配置和管理。5.2节,传统的计算图中最低开销路径的路由选…...
探索阿里云智能媒体管理IMM:解锁媒体处理新境界
一、引言:开启智能媒体管理新时代 在数字化浪潮的席卷下,媒体行业正经历着前所未有的变革。从传统媒体到新媒体的转型,从内容生产到传播分发,每一个环节都在寻求更高效、更智能的解决方案。而云计算,作为推动这一变革…...
微信点餐小程序—美食物
本项目是基于WAMP Server 和PHP 动态网页技术构建的微信小程序点餐系统,该系统主要分为前端(微信小程序)和后端(基于PHPMySQL服务器端) 整体架构流程 1、前端部分 用户界面:展示菜品、处理用户点餐操作、…...
Python零基础入门到高手8.5节: 实现选择排序算法
目录 8.5.1 排序算法简介 8.5.2 选择排序算法 8.5.3 好好学习,天天向上 8.5.1 排序算法简介 所谓排序,是指将数据集合中的元素按从小到大的顺序进行排列,或按从大到小的顺序进行排列。前者称为升序排序,后者称为降序排序。在数…...
JavaEE初阶第四期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(二)
专栏:JavaEE初阶起飞计划 个人主页:手握风云 目录 一、Thread类及常用方法 2.1. Thread的常见构造方法 2.2. Thread的常见属性 2.3. 启动一个线程 2.4. 中断一个线程 2.5. 等待一个线程 2.6. 休眠当前线程 一、Thread类及常用方法 2.1. Thread的…...
Metasploit常用命令详解
一、Metasploit 概述 Metasploit是一款开源的渗透测试框架,由 H.D. Moore 于 2003 年首次发布,目前由 rapid7 公司维护。它整合了大量漏洞利用模块、后渗透工具和漏洞扫描功能,已成为网络安全工程师、红队 / 蓝队成员及安全研究人员的核心工…...
2025.6.24总结
今天发生了两件事,这每件事情都足以影响我的工作状态。 1.团队中有人要转岗 这算是最让我有些小震惊的事件了。我不明白,那个同事干得好好的,为啥会转岗,为啥会被调到其他团队。虽然团队有正编,有od,但我自始自终觉得…...
2023年全国青少年信息素养大赛Python 复赛真题——玩石头游戏
今日python每日练习题为——玩石头游戏,大家记得坚持刷题哦,闯入国赛~ 每轮可拿 1-3 块石头,双方均采取最优策略。若石头数 n 为 4 的倍数,无论先手取 k 块(1≤k≤3),后手总能取 4-k 块…...
MySQL之SQL性能优化策略
MySQL之SQL性能优化策略 一、主键优化策略1.1 主键的核心作用1.2 主键设计原则1.3 主键优化实践 二、ORDER BY优化策略2.1 ORDER BY执行原理2.2 ORDER BY优化技巧2.3 处理大结果集排序 三、GROUP BY优化策略3.1 GROUP BY执行原理3.2 GROUP BY优化方法 四、LIMIT优化策略4.1 LIM…...
AI时代工具:AIGC导航——AI工具集合
大家好!AIGC导航是一个汇集多种AIGC工具的平台,提供了丰富的工具和资源。 工具功能: 该平台整合了多样的AIGC工具,涵盖了绘画创作、写作辅助以及视频制作等多个领域。绘画工具能够生成高质量的图像作品;写作工具支持从构思到润色的全流程写…...
性能测试-jmeter实战4
课程:B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter实战4 jmeter环境搭建1. 安装Java环境(必需) JMeter环境搭建完整指南1. 安装Java࿰…...
C++字符串的行输入
1、字符串的输入 下面用一个真实的示例来进行演示: #include<iostream> #include<string>int main() {using namespace std;const int ArSize 20;char name[ArSize];char dessert[ArSize];cout << "Enter your name:\n";cin >>…...
【Linux网络与网络编程】15.DNS与ICMP协议
1. DNS 1.1 DNS介绍 TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序,但是 IP 地址不方便记忆,于是人们发明了一种叫主机名的字符串,并使用 hosts 文件来描述主机名和 IP 地址的关系。最初, 通过互连网信息中心(SRI-NIC)来…...
Python训练营-Day40-训练和测试的规范写法
1.单通道图片训练 # import torch # import torch.nn as nn # import torch.optim as optim # from torchvision import datasets, transforms # from torch.utils.data import DataLoader # import matplotlib.pyplot as plt # import numpy as np# # 设置中文字体支持 # plt…...
【Python-Day 29】万物皆对象:详解 Python 类的定义、实例化与 `__init__` 方法
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
内存泄漏和内存溢出的区别
内存泄漏(Memory Leak)和内存溢出(Memory Overflow / Out Of Memory, OOM)是软件开发中两个密切相关但又本质不同的内存问题: 核心区别一句话概括: 内存泄漏: 有垃圾对象占用内存却无法被回收&…...
Linux系统---Nginx配置nginx状态统计
配置Nignx状态统计 1、下载vts模块 https://github.com/vozlt/nginx-module-vts [rootclient ~]# nginx -s stop [rootclient ~]# ls anaconda-ks.cfg nginx-1.27.3 ceph-release-1-1.el7.noarch.rpm nginx-1.27.3.tar.gz info.sh …...
linux操作系统的软件架构分析
一、linux操作系统的层次结构 1.内核的主要功能 1)进程管理 2)内存管理 3)文件系统 4)进程间通信、I/O系统、网络通信协议等 2.系统程序 1)系统接口函数库,比如libc 2)shell程序 3)编译器、编辑…...
快速手搓一个MCP服务指南(三):FastMCP的核心组件-构建MCP服务的关键技术实现
FastMCP 是一套面向 LLM 应用开发的工具框架,通过标准化协议衔接大语言模型与外部功能组件,构建「LLM工具」的闭环交互体系。其核心技术体系包含四大模块:工具系统将 Python 函数转化为 LLM 可调用的能力单元,通过类型注解实现参数…...
创建首个 Spring Boot 登录项目
📌 摘要 在 Java Web 开发中,登录功能是最基础也是最重要的模块之一。本文将手把手带你使用 IntelliJ IDEA 和 Maven 构建一个基于 Spring Boot 的简单登录系统,涵盖: 使用 IDEA 创建 Spring Boot 项目配置 Maven 依赖ÿ…...
order、sort、distribute和cluster by(Spark/Hive)
1. abstract ORDER BY:完整查询结果的全局行排序。与SORT BY、CLUSTER BY、DISTRIBUTE BY互斥,不能同时使用。 示例SELECT * FROM table_name ORDER BY column_name;SORT BY:只在每个分区内排序,局部排序结果不是全局有序。与ORD…...