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

阿里云服务结构--长期更新

CNCF

全称Cloud Native Computing Foundation(云原生计算基金会),成立于 2015 年7月21日(于美国波特兰OSCON 2015上宣布),其最初的口号是坚持和整合开源技术来让编排容器作为微服务架构的一部分,其作为致力于云原生应用推广和普及的一支重要力量。CNCF作为一个厂商中立的基金会,致力于Github上的快速成长的开源技术的推广,如Kubernetes、Prometheus、Envoy等,帮助开发人员更快更好的构建出色的产品。

在这里插入图片描述
来源:https://landscape.cncf.io/

根据云服务模型(IaaS、PaaS、SaaS),以下是阿里云服务的划分:

IaaS(基础设施即服务):

弹性计算ECS:提供虚拟服务器实例,用户可以在这些实例上运行自己的应用程序。
弹性负载均衡SLB:提供按需分配流量的负载均衡服务,用于提高应用程序的可用性和性能。
云数据库RDS:提供托管的关系型数据库服务,包括MySQL、SQL Server、PostgreSQL等。
对象存储OSS:提供可扩展的对象存储服务,用于存储和访问大规模的非结构化数据。
云盘:提供弹性的块存储,用于持久化存储和访问数据。

PaaS(平台即服务):

弹性容器实例ECS:提供无需管理虚拟机的容器化应用程序运行环境。
函数计算FC:提供无服务器计算服务,以事件驱动的方式执行代码。
数据传输服务DTS:支持数据迁移和同步的服务,用于在不同数据源之间进行数据传输。
消息服务:提供消息发布和订阅功能,用于构建分布式应用程序和解耦组件之间的通信。
数据库备份DBS:提供自动备份和恢复数据库的服务,用于保护数据的安全性和可靠性。

SaaS(软件即服务):

阿里云智能大脑:提供智能业务分析和决策支持的服务,包括数据分析、机器学习和人工智能等。
飞冰(ICE):提供前端应用程序开发框架和工具,用于快速构建现代化的Web应用程序。
阿里云视频云:提供视频相关的服务,包括视频点播、直播和转码等。
阿里云云市场:提供各种软件应用程序和解决方案的市场,供用户选择和使用。

阿里云微服务相关的服务:

阿里云提供的与微服务和Kubernetes(k8s)相关的一些服务及其作用:

阿里云容器服务(ACK):

阿里云容器服务:基于Kubernetes的容器化应用程序编排和管理服务。它提供了托管的Kubernetes集群,用户可以使用Kubernetes进行容器的部署、伸缩和扩展等操作。
阿里云容器服务 ACK(Alibaba Cloud Container Service for Kubernetes)是阿里云基于Kubernetes(简称K8s)提供的托管式容器服务。ACK旨在简化Kubernetes集群的创建、部署和管理过程,使用户可以更轻松地在阿里云上运行和管理容器化应用。

关系:
ACK是建立在Kubernetes之上的,它提供了对Kubernetes的扩展和增强,使得在阿里云平台上使用Kubernetes更加方便。ACK提供了一系列的功能和工具,如集群管理、容器编排、服务发现和扩缩容等,以帮助用户更好地利用Kubernetes进行应用容器化。

区别:
托管程度:ACK是阿里云提供的托管式Kubernetes服务,阿里云负责底层集群的运维和管理,用户只需关注应用部署和管理。而Kubernetes是一个开源的容器编排平台,用户需要自行搭建和管理Kubernetes集群。

功能和集成:ACK在原生Kubernetes基础上提供了一些阿里云特定的功能和集成,如阿里云资源管理、日志服务、监控和自动扩缩容等。这些功能使得在阿里云平台上使用Kubernetes更加便捷和集成化。

扩展生态系统:Kubernetes作为开源项目,具有庞大的生态系统和社区支持,有丰富的第三方工具和插件可供选择。而ACK作为托管服务,对于某些自定义需求和第三方工具的使用可能有一定的限制。

阿里云微服务平台(Service Mesh)

基于Service Mesh技术构建的微服务架构。它提供了服务间通信、安全、流量管理和监控等功能,帮助用户构建和管理微服务架构。
容器化、编排和部署:
微服务平台的Service Mesh是一种用于管理和监控微服务架构的解决方案。它通过在应用程序的网络通信层添加一层代理,实现了对微服务之间的通信流量进行控制、安全性增强和可观测性提升的功能。

Service Mesh的主要作用包括:
服务发现和负载均衡:Service Mesh可以自动发现微服务的实例并实现负载均衡,确保请求能够合理地分发到不同的服务实例上。
流量管理和路由控制:Service Mesh可以通过路由规则和流量控制策略,实现请求的精确转发、流量切分、灰度发布等功能,提供灵活的流量管理能力。
安全性增强:Service Mesh可以在微服务之间提供加密通信,确保通信的机密性和数据的安全性。它还可以提供身份认证、授权和访问控制等安全功能,保护微服务架构免受恶意攻击。
故障处理和容错机制:Service Mesh可以监控微服务的健康状态,及时发现故障并进行故障转移,提供容错和弹性机制,确保整个系统的可靠性和稳定性。
可观测性提升:Service Mesh可以收集和展示微服务之间的通信数据和指标,提供实时监控、日志记录和性能追踪等功能,帮助开发人员和运维团队更好地理解和分析微服务架构的运行状况。

容器服务(Container Service)

弹性容器服务(Elastic Container Service):用于调度和管理容器集群的服务。它支持自动伸缩、负载均衡和容器编排等功能,简化了容器化应用程序的部署和操作。
阿里云提供的容器托管服务。它支持Docker容器的部署和管理,提供高可用、弹性伸缩和自动化部署等功能。
阿里云容器服务(Alibaba Cloud Container Service)是阿里云提供的一项托管式容器服务。它提供了一种简化的方式来创建、部署和管理容器化应用程序。

中文全称:阿里云容器服务
英文全称:Alibaba Cloud Container Service
英文缩写:ACS

阿里云容器服务提供以下主要服务:
容器集群管理:阿里云容器服务允许您轻松创建和管理容器集群,通过集群管理功能,可以自动扩展和缩减集群的规模,以满足应用程序的需求。还提供了高可用性和弹性伸缩等功能。
容器编排:阿里云容器服务支持多种容器编排工具,包括Kubernetes、Swarm和Serverless Kubernetes(Knative),使您能够根据自己的喜好和需求选择合适的编排方式。
应用部署和管理:容器服务提供了一套完整的工具和接口,用于部署和管理容器化应用程序。您可以使用阿里云容器服务控制台、命令行工具或API来管理应用程序的生命周期,包括创建、启动、停止和删除容器等操作。
相比于Docker,阿里云容器服务提供了以下额外的服务:
托管集群:阿里云容器服务为您提供了托管的容器集群,无需关注底层基础设施的运维和管理,可以专注于应用程序的开发和部署。
弹性伸缩:容器服务提供了自动扩容和缩容的功能,根据应用程序的负载情况自动调整容器集群的规模。
高可用性:容器服务提供了高可用性的容器集群,确保应用程序的稳定性和可靠性。
容器编排:容器服务支持多种容器编排工具,使得应用程序的部署和管理更加灵活和便捷。

弹性容器实例(Elastic Container Instance):无需管理虚拟机的容器化应用程序运行环境。它提供了快速部署和弹性伸缩的能力,适用于无服务器和短时任务等场景。
阿里云弹性容器实例(Alibaba Cloud Elastic Container Instance)是一种轻量级的容器化计算服务,它提供了一种简单、快速且弹性的方式来运行容器化应用程序。

中文全称:阿里云弹性容器实例
英文全称:Alibaba Cloud Elastic Container Instance
英文缩写:ECI

阿里云弹性容器实例具有以下特点和功能:
快速启动:弹性容器实例可以在数秒内快速启动,无需预先创建和管理容器集群,可以快速部署和运行容器化应用程序。
弹性伸缩:弹性容器实例支持按需自动伸缩,根据应用程序的负载情况自动调整容器实例的数量,实现弹性和高效的资源利用。
简单易用:弹性容器实例提供了简单的API和命令行工具,可以方便地创建、管理和监控容器实例,无需关注底层基础设施的运维细节。
隔离性:每个弹性容器实例都是独立的运行环境,具有隔离的计算资源,可以保证应用程序之间的互相隔离和安全性。
与阿里云ECS(Elastic Compute Service)相比,弹性容器实例有以下区别:

部署方式:ECS是基于虚拟机的计算服务,需要预先创建和管理虚拟机实例,然后在虚拟机上部署容器。而弹性容器实例是无服务器的计算服务,无需预先创建虚拟机,直接创建和运行容器实例。

弹性性能:弹性容器实例具有快速启动和弹性伸缩的特点,可以根据应用程序的需要快速调整容器实例的数量,实现更灵活的资源利用和弹性扩展。

管理复杂度:相对于ECS,弹性容器实例提供了更简单易用的部署和管理方式,无需关注底层虚拟机的运维,更加专注于应用程序的开发和部署。

总之,阿里云弹性容器实例是一种轻量级的容器化计算服务,相比于ECS,它具有快速启动、弹性伸缩和简单易用的特点,适用于快速部署和运行容器化应用程序,并且减少了管理复杂度和资源开销。

阿里云容器监控服务(Container Monitoring Service)

用于监控容器的性能和状态。它提供了资源使用情况、性能指标和日志收集等功能,帮助用户实时监控和分析容器化应用程序。
阿里云日志服务(Log Service):用于收集、存储和分析应用程序和系统的日志数据。它支持容器化应用程序的日志采集和分析,帮助用户快速定位和解决问题。
阿里云容器监控服务(Alibaba Cloud Container Monitoring Service)是一种用于监控容器化应用程序的服务。它提供了全面的监控和告警功能,帮助您实时了解容器集群的健康状态和性能指标。

中文全称:阿里云容器监控服务
英文全称:Alibaba Cloud Container Monitoring Service
英文缩写:CMS

阿里云容器监控服务可以实现以下功能:
性能监控:容器监控服务可以监控容器的 CPU 使用率、内存占用、网络流量等性能指标,帮助您了解容器的运行情况和资源利用情况。
应用监控:容器监控服务可以通过集成应用程序的指标和日志,提供对容器内应用程序的监控,包括请求响应时间、错误率、事务量等指标。
集群监控:容器监控服务可以监控整个容器集群的状态和指标,包括集群的节点数、容器实例数、运行状态等,帮助您实时了解集群的整体健康状况。
告警和通知:容器监控服务支持设置告警规则,并在触发告警时发送通知,可以及时发现和处理容器集群中的异常情况。
通过阿里云容器监控服务,您可以快速了解容器化应用程序的运行情况,及时发现和解决问题,提高应用程序的可靠性和性能。

what is CI/CD?

CI/CD是持续集成和持续交付(Continuous Integration/Continuous Delivery)的缩写,是一种软件开发流程和实践方法。
持续集成(Continuous Integration)是指开发团队将其工作频繁地集成到主干代码仓库中,每次集成都会进行自动化的构建和测试,以快速发现和解决集成问题。通过持续集成,开发团队可以更早地发现和解决代码冲突、构建错误和功能问题,确保代码的质量和稳定性。

持续交付(Continuous Delivery)是在持续集成的基础上,将集成通过自动化部署流水线进行自动化构建、测试和部署到生产环境的过程。持续交付的目标是在任何时候都能够快速、可靠地将软件交付给用户,以减少发布的时间和风险。

CI/CD的主要目标是加速软件开发和交付周期,提高开发团队的效率和软件质量,并降低发布风险。通过自动化构建、测试和部署流程,开发团队可以更频繁地发布新功能、修复缺陷和优化性能,以满足用户需求的快速变化。

在CI/CD流程中,通常会使用版本控制系统(如Git)、持续集成服务器(如Jenkins、Travis CI)、自动化测试工具和部署工具等来支持自动化的构建、测试和部署过程。这样的流程可以帮助团队在软件开发中实现更高的协作效率、更好的代码质量和更快的交付速度。

CI/CD的自动化流程通常包括以下步骤:
01代码管理和版本控制:使用版本控制系统(如Git)管理和跟踪代码的变化。开发人员通过提交代码到代码仓库,将其集成到主干代码中。

02触发构建:当代码提交到代码仓库后,触发构建过程。这可以通过版本控制系统的钩子(如Git钩子)或持续集成服务器(如Jenkins)来实现。

03编译和构建:自动化地将代码编译成可执行的软件包或部署的文件。这可能涉及编译源代码、打包依赖项、生成可执行文件或构建容器镜像等操作。

04单元测试:运行自动化的单元测试套件来验证代码的功能和逻辑是否正确。单元测试可以覆盖代码的不同组成部分,确保其质量和稳定性。

05静态代码分析:使用静态代码分析工具检查代码中的潜在问题,如代码规范、潜在的缺陷、安全漏洞等。这有助于提前发现和纠正潜在的问题。

06构建部署包:根据构建结果生成部署包或容器镜像。这些部署包可以包含应用程序、配置文件、依赖项和其他必要的资源。

07集成测试:自动化地运行集成测试套件,验证不同组件和服务之间的交互是否正常工作。这有助于发现集成问题和依赖关系的错误。

08部署到测试环境:将构建好的应用程序或容器镜像部署到测试环境中,以进行综合测试和验收测试。这可以使用自动化的部署工具(如Kubernetes、Docker等)来实现。

09自动化测试:运行自动化的端到端测试、功能测试、性能测试等来验证应用程序在真实环境中的行为和性能。

10部署到生产环境:在通过测试环节验证应用程序后,自动将应用程序或容器镜像部署到生产环境中。这可以通过自动化部署工具和发布管道来实现。

11监控和反馈:在生产环境中监控应用程序的运行状态、性能指标和日志。将监控数据反馈给开发人员和团队,以及进行问题排查和持续改进。

相关文章:

阿里云服务结构--长期更新

CNCF 全称Cloud Native Computing Foundation(云原生计算基金会),成立于 2015 年7月21日(于美国波特兰OSCON 2015上宣布),其最初的口号是坚持和整合开源技术来让编排容器作为微服务架构的一部分&#xff0…...

Java8 BiConsumer<T, U> 函数接口浅析分享(含示例,来戳!)

文章目录 Java8 BiConsumer<T, U> 函数接口浅析分享&#xff08;含示例&#xff0c;来戳&#xff01;&#xff09;源码accept 方法示例示例一示例二 andThen 方法示例示例一示例二 示例相关代码类dohandler 方法student.javaStudentScore.javaStudentScoreDto.java Java8…...

C++学习:类的使用--运算符重载

我们知道C可以对函数进行重载&#xff0c;让同名的函数来完成相同的基本操作。其实运算符也是可以重载的&#xff0c;而且有的运算符已经在使用了&#xff0c;就像*&#xff0c;既可以用于地址&#xff0c;又可以用于乘法。 下面是一个计算时间的类 #ifndef MYTIME_H #define…...

嵌入式养成计划-46----QT--简易版网络聊天室实现--QT如何连接数据库

一百一十九、简易版网络聊天室实现 119.1 QT实现连接TCP协议 119.1.1 基于TCP的通信流程 119.1.2 QT中实现服务器过程 使用QTcpServer实例化一个服务器对象设置监听状态&#xff0c;通过listen()函数&#xff0c;可以监听特定的主机&#xff0c;也可以监听所有客户端&#x…...

YOLO目标检测——人脸识别数据集【对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;安全监控、智能驾驶、人机交互、人脸门禁、人脸支付、人脸搜索数据集说明&#xff1a;人脸识别数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;含有人脸图片标签说明&#xff1a;使用lableimg标注软件标注&#xff0…...

mybatis日志不打印的问题

在项目中使用了 spring boot&#xff0c;orm 层集成了 mybatis-plus&#xff0c;按照默认配置后发现之前配置的 sql 日志正常&#xff0c;在这里却不正常&#xff0c;鉴于日志使用的是 logback&#xff0c;想到了打印 sql 的日志级别是 debug&#xff0c;所以&#xff0c;按照这…...

【分布式缓存】关于 Memcached 的几个常见问题

关于 Memcached 的几个常见问题 1.Memcached 是怎么工作的&#xff1f;2.Memcached 最大的优势是什么&#xff1f;3.Memcached 和 MySQL 的 querycache 相比&#xff0c;有什么优缺点&#xff1f;4.Memcached 和服务器的 local cache&#xff08;比如 PHP 的 APC、mmap 文件等&…...

MySQL 三大日志(bin log、redo log、undo log)

redo log redo log (重做日志) 是 InnoDB 存储引擎独有的&#xff0c;它让 MySQL有了崩溃恢复的能力&#xff0c;是事务中实现 持久化的重要操作 比如 MySQL 实例宕机了&#xff0c;重启时&#xff0c;InnoDB 存储引擎会使用 redo log 恢复数据&#xff0c;保证数据的持久性与…...

asp.net社区医疗辅助诊断网站系统VS开发sqlserver数据库web结构c#编程

一、源码特点 asp.net社区医疗辅助诊断网站系统 是一套完善的web设计管理系统&#xff0c;系统采用mvc模式&#xff08;BLLDALENTITY&#xff09;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver200…...

NLP Bi-Encoder和Re-ranker

Retrieve & Re-Rank https://www.sbert.net/examples/applications/retrieve_rerank/README.html Bi-Encoder vs. Cross-Encoder https://www.sbert.net/examples/applications/cross-encoder/README.html Bi-Encoder会用BERT对输入文本编码&#xff0c;再根据cosine相似度…...

SpringBoot+Mybatis 配置多数据源及事务管理

目录 1.多数据源 2.事务配置 项目搭建参考: 从零开始搭建SpringBoot项目_从0搭建springboot项目-CSDN博客 SpringBoot学习笔记(二) 整合redismybatisDubbo-CSDN博客 1.多数据源 添加依赖 <dependencies><dependency><groupId>org.springframework.boot&…...

华为OD 猴子吃桃(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...

切片不够技术来凑

概述 随着数据经度的提升&#xff0c;18级的切片有些场景已经不够用了&#xff0c;但是大部分在线的栅格切片最大级别还是18级&#xff0c;如果地图继续放大&#xff0c;有的框架&#xff08;leaflet会&#xff0c;openlayers和mapboxGL不会&#xff09;会存在没有底图的情况。…...

特约|数码转型思考:Web3.0与银行

日前&#xff0c;欧科云链研究院发布重磅报告&#xff0c;引发银行界及金融监管机构广泛关注。通过拆解全球70余家银行的加密布局&#xff0c;报告认为&#xff0c;随着全球采用率的提升与相关技术的成熟&#xff0c;加密资产已成为银行业不容忽视也不能错过的创新领域。 作为…...

MySQL知识详细汇总

存储引擎 MyISAM 不支持事务&#xff0c;不支持外键&#xff0c;支持全文索引&#xff0c;查询、插入效率高InnoDB 支持事务&#xff08;事务的特性&#xff09; 原子性&#xff1a;一个事务中所有的操作&#xff0c;要么全部完成&#xff0c;要么全部不完成&#xff0c;不会在…...

【驱动开发】LED灯的亮灭——通过字符设备驱动的分步实现编写LED驱动,实现设备文件和设备的绑定

头文件&#xff1a; #ifndef __HEAD_H__ #define __HEAD_H__typedef struct {unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t;//LED灯的寄存器地址 #define LED1_ADDR 0X50006000 #define L…...

华为OD 最小数字(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...

大模型、实时需求推动湖仓平台走向开放

大模型、实时需求高涨 AGI 时代&#xff0c;以 ChatGPT、Midjourney 等为代表的大模型迅速应用加速了 AI 普及&#xff0c;越来越多的企业选择搭建自己的 AI 基础设施&#xff0c;训练行业大模型。 另一方面&#xff0c;企业为了在瞬息万变的市场环境中更快的做出商业决策&…...

Linux搭建文件服务器

搭建简单文件服务器 基于centos7.9搭建http文件服务器基于centos7.9搭建nginx文件服务器基于ubuntu2204搭建http文件服务器 IP环境192.168.200.100VMware17 基于centos7.9搭建http文件服务器 安装httpd [rootlocalhost ~]# yum install -y httpd关闭防火墙以及selinux [roo…...

跨境商城源码可以支持多种支付方式吗?

跨境商城源码是一种用于建立跨国界电商平台的程序代码。随着全球电商的繁荣发展&#xff0c;越来越多的商家开始寻找一种既安全可靠&#xff0c;又能满足用户需求的支付方式。那么&#xff0c;跨境商城源码是否能够支持多种支付方式呢?让我们深入探讨一下。 1. 支付宝支付 支付…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...