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

传统应用容器化迁移实践

背景介绍:从传统部署到容器化迁移的必要性

在过去的运维工作中,某企业一直依赖于传统的物理机和虚拟机部署方式。然而,随着业务的快速发展和应用规模的不断扩大,传统部署方式的局限性逐渐显现:

  1. 资源利用率低:物理机和虚拟机资源分配固定,导致资源利用率普遍偏低,部分服务器长期处于高负载状态,而另一些服务器却闲置。
  2. 部署复杂且耗时:每次应用部署都需要手动配置环境,耗时长且容易出错,尤其是在高峰期的紧急部署中,效率问题尤为突出。
  3. 扩展性差:面对业务高峰期的流量波动,传统的垂直扩展方式无法快速响应,导致资源浪费和用户体验下降。

为了应对这些挑战,我们项目组接到指示决定将传统应用逐步迁移至容器化平台,并最终采用Kubernetes作为容器编排工具。这一决策得到了开发和运维主管的支持,并成立了专项小组,由我负责具体实施和运维支持。

方案设计:技术选型与规划

在方案设计阶段,我们进行了详细的调研和讨论,最终确定了以下技术栈和实施策略:

  1. 容器化工具选择:采用Docker作为容器化工具,因其广泛的社区支持和成熟的生态系统。
  2. 容器编排工具选择:选择Kubernetes作为容器编排工具,以实现应用的自动化部署、扩展和管理。
  3. 网络插件选择:采用Calico作为网络插件,以支持跨主机的网络策略和高性能的网络通信。
  4. 存储方案选择:使用Ceph作为分布式存储,结合Kubernetes的PersistentVolume和PersistentVolumeClaim,实现存储资源的动态分配。

以下是具体的实施规划:

  • 第一阶段:完成核心应用的Docker化改造,编写Dockerfile和docker-compose文件,确保应用能够在容器环境中稳定运行。
  • 第二阶段:搭建Kubernetes集群,配置网络和存储,迁移应用至Kubernetes平台,实现自动化部署和扩展。
  • 第三阶段:优化集群性能,监控资源使用情况,调整资源配额和调度策略,确保集群的高效运行。
实施过程:分阶段推进迁移
第一阶段:Docker化改造

在Docker化改造过程中,我们遇到了一些挑战,例如如何处理应用的依赖和服务间的调用关系。通过详细的调研和测试,我们制定了以下解决方案:

  1. 编写Dockerfile:为每个应用编写Dockerfile,确保镜像的构建和运行环境一致。
    FROM openjdk:11-jdk
    LABEL name=Nova_CFC
    ARG JAR_FILE=target/*.jar
    COPY ${JAR_FILE} app.jar
    EXPOSE 8080
    CMD ["java", "-jar", "app.jar"]
    
  2. 编写docker-compose文件:定义服务间的依赖关系和网络配置,实现一键式部署。
    version: '3'
    services:app:build: .ports:- "8080:8080"depends_on:- dbdb:image: mysql:8.0environment:MYSQL_ROOT_PASSWORD: rootMYSQL_DATABASE: appdb
    
第二阶段:Kubernetes集群搭建与应用迁移

在Kubernetes集群搭建过程中,我们遇到了一些问题,例如网络配置不正确导致服务无法通信。通过仔细排查和调整,我们最终解决了这些问题。

  1. 安装Kubernetes:使用Kubeadm工具搭建Kubernetes集群。

    # 安装Docker
    yum install -y docker
    systemctl start docker
    systemctl enable docker# 安装Kubeadm、Kubelet和Kubectl
    yum install -y kubelet kubeadm kubectl
    systemctl enable kubelet
    systemctl start kubelet# 初始化集群
    kubeadm init --apiserver-advertise-address=192.168.1.100 --apiserver-bind-port=6443
    
  2. 配置网络插件:安装Calico网络插件,确保集群内的网络通信正常。

    kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
    
  3. 迁移应用至Kubernetes:将Docker化改造后的应用迁移至Kubernetes平台,编写Kubernetes资源文件。

    apiVersion: apps/v1
    kind: Deployment
    metadata:name: app-deployment
    spec:replicas: 3selector:matchLabels:app: apptemplate:metadata:labels:app: appspec:containers:- name: appimage: your-repository/app:1.0ports:- containerPort: 8080resources:limits:cpu: 500mmemory: 512Mi
    
第三阶段:优化与监控

在应用迁移至Kubernetes平台后,我们对集群进行了优化和监控,确保资源的高效利用和应用的稳定运行。

  1. 资源配额设置:为每个命名空间设置资源配额,防止资源争用。

    apiVersion: v1
    kind: ResourceQuota
    metadata:name: app-quota
    spec:hard:cpu: 2memory: 4Girequests.cpu: 1requests.memory: 2Gi
    
  2. 监控与报警:集成Prometheus和Grafana,监控集群和应用的运行状态,设置报警规则。

    # 安装Prometheus
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
    helm install prometheus prometheus-community/prometheus
    
成果总结:量化效果与经验总结

通过本次容器化迁移项目,我们取得了显著的成果:

  1. 资源利用率提升:CPU利用率从原来的30%提升至60%,内存利用率从40%提升至70%。
  2. 部署效率提升:部署时间从原来的30分钟缩短至5分钟,实现了自动化部署。
  3. 成本优化:通过资源的高效利用,硬件成本降低了30%,节省了约¥86万/年的IDC费用。
  4. 运维效率提升:通过Kubernetes的自动化管理,运维效率提升了50%,故障恢复时间从4小时缩短至30分钟。

在项目实施过程中,我作为运维工程师,学到了很多知识和思路,并且我主要完成了:

  1. 技术支持:负责Kubernetes集群的搭建和配置,解决网络和存储问题。
  2. 资源优化:通过监控和分析,优化资源配额和调度策略,提升资源利用率。
  3. 团队协作:与开发和运维主管紧密合作,制定迁移方案,协调资源,确保项目顺利推进。
结语

本次容器化迁移项目不仅提升了系统的稳定性和扩展性,也提升了团队的技术水平和协作能力。作为运维工程师,我深刻体会到技术变革的重要性,也认识到团队协作在项目成功中的关键作用。未来,我们将继续优化Kubernetes集群,探索更多的云原生技术,为业务的持续发展提供坚实的技术保障。

相关文章:

传统应用容器化迁移实践

背景介绍:从传统部署到容器化迁移的必要性 在过去的运维工作中,某企业一直依赖于传统的物理机和虚拟机部署方式。然而,随着业务的快速发展和应用规模的不断扩大,传统部署方式的局限性逐渐显现: 资源利用率低&#xf…...

混境之地1

问题描述 小蓝有一天误入了一个混境之地。 好消息是:他误打误撞拿到了一张地图,并从中获取到以下信息: 混境之地的大小为 n⋅mn⋅m,其中 # 表示这个位置很危险,无法通行,. 表示道路,可以通行。他…...

LLM 加速技术有哪些

LLM 加速技术有哪些 目录 LLM 加速技术有哪些量化(Quantization)基本原理举例剪枝(Pruning)基本原理举例动态Shape(Dynamic Shape)基本原理举例算子融合(Operator Fusion)基本原理举例量化(Quantization) 基本原理 量化是指将模型中连续取值(如32位浮点数)的参数…...

CPP从入门到入土之类和对象Ⅲ

拷贝构造函数 拷贝构造函数是一个已经存在的对象去初始化一个新的对象时,调用的函数 例如: 假设我有一个盒子,里面装了一个苹果 拷贝构造函数的特点 拷贝构造函数是构造函数的一个重载拷贝构造函数的第一个参数必须是类类型对象的引用,例如…...

安全上网沙箱:多方面解决政企私的上网问题

在数字化的浪潮中,网络已成为我们工作与生活不可或缺的一部分。然而,网络的便捷也伴随着诸多安全隐患,尤其是对于企业、个人以及政企机构而言,安全上外网成为了至关重要的课题。 隔离保护:构建安全堡垒 沙箱技术在内网…...

空转 | GetAssayData doesn‘t work for multiple layers in v5 assay.

问题分析 当我分析多个样本的时候,而我的seurat又是v5时,通常就会出现这样的报错。 错误的原因有两个: 一个是参数名有slot变成layer 一个是GetAssayData 不是自动合并多个layers,而是选择保留。 那么如果我们想合并多个样本&…...

26、web前端开发之CSS3(三)

5. 文本(Text) CSS3大大增强了对文本样式和排版的控制,使得网页设计更加灵活和多样化。本讲详细介绍CSS3中常用的文本相关属性,包括文本对齐、字体大小、行高、字母间距、单词拆分、溢出隐藏等,帮助开发者更好地控制和…...

第 8 章:使用更好的库_《C++性能优化指南》_notes

使用更好的库 第八章核心知识点解析编译与测试建议总结优化原则重点内容:第一部分:多选题(10题)第二部分:设计题答案与解析多选题答案:设计题答案示例(部分): 测试用例设…...

【面试八股】:常见的锁策略

常见的锁策略 synchronized (标准库的锁不够你用了)锁策略和 Java 不强相关,其他语言涉及到锁,也有这样的锁策略。 1. 悲观锁,乐观锁(描述的加锁时遇到的场景) 悲观锁:预测接下来…...

Apache Iceberg 解析,一文了解Iceberg定义、应用及未来发展

什么是 Iceberg? Apache Iceberg 是一种开源的 表格式(Table Format) ,专为超大规模数据分析场景设计,通过标准化数据存储规范与访问协议,解决了传统数据湖在元数据管理、事务控制、查询性能等方面的核心痛…...

Ubuntu 优化启动时间优化

优化 Ubuntu 20.04 的启动时间可以从多个方面入手,以下是详细的步骤和建议: 一、分析启动耗时 首先检查系统启动各阶段的耗时: systemd-analyze time # 查看整体启动时间 systemd-analyze blame # 列出各服务/进程的启动耗时 …...

【Git 常用指令速查表】

Git 常用指令速查表 Git 常用指令速查表目录1. 初始化仓库2. 提交代码流程3. 分支管理4. 远程仓库操作5. 撤销操作6. 查看状态与日志7. 其他实用指令完整操作示例常用场景速查表 Git 常用指令速查表 目录 初始化仓库提交代码流程分支管理远程仓库操作撤销操作查看状态与日志其…...

Linux实用操作及命令

一、各类小技巧(快捷键) 1、强制停止(ctrlc) Linux某些程序的运行,如果想要强制停止它,可以使用快捷键ctrl c 命令输入错误,也可以通过快捷键ctrl c,退出当前输入,重…...

洛谷 P10516 数据结构 Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​) 和 b ( b 1 , b 2 , ⋯ , b n ) b(b_1,b_2,\cdots,b_n) b(b1​,b2​,⋯,bn​),有 m m m 个操作分三种: add ⁡ ( l , r , k , t ) \operatorname{ad…...

在IDEA中使用TortoiseSVN

一、前言 原版SVN由于下载路径中没有svn.exe文件,导致IDEA中无法使用命令行提交项目代码,因此,现在卸载旧版本TortoiseSVN,下载附有svn.exe的新版TortoiseSVN,下载使用过程记录如下 二、下载过程 卸载就在 控制面板…...

基于 ffmpeg 实现合并视频

ffmpeg是一个强大的多媒体处理工具,支持视频文件的合并。 列出目录下所有MP4文件 import os import glob# 当前目录 directory os.getcwd() directory "/directory/to/mp4/*"# 列出目录下所有MP4文件 files glob.glob(directory)# 排序 files.sort(…...

如何在 HTML 中嵌入外部字体,有哪些注意事项?

大白话如何在 HTML 中嵌入外部字体,有哪些注意事项? 在 HTML 里嵌入外部字体,能让网页文字更有个性,瞬间提升页面的吸引力。下面就来详细说说怎么嵌入外部字体,以及其中的注意事项。 嵌入外部字体的方法 1. 使用 fo…...

三极管原理及应用

一、结构 基极(Base,符号:B) 基极是三极管的控制端,用于输入控制信号。通过基极电流的大小,可以控制集电极与发射极之间的电流导通程度,实现电流放大或开关功能。 发射极(Emitter&…...

三个串口同时打开并指定数据包控制指令思想

可以对嵌入式串口数据包指令设置做一次总结: 首先确定你的数据包大小,传统的接收串口数据到数组存储会出现需要循环遍历数组去读取数据的弊端,所以我设计了一个机制,只有当你想要读取外界指令时,才开始读取外界发过来…...

“征服HTML引号恶魔:“完全解析手册”!!!(quot;表示双引号)

&#x1f6a8;&#x1f4e2; "征服HTML引号恶魔&#xff1a;“完全解析手册” &#x1f4e2;&#x1f6a8; &#x1f3af; 博客引言&#xff1a;当引号变成"恶魔" &#x1f631; 是否遇到过这种情况&#xff1a; 写HTML时满心欢喜输入<div title"他…...

MQL5教程 04 脚本开发实战、指标开发基础

文章目录 一、脚本开发实战1、给脚本设置快捷键2、运行时显示输入参数界面3、开市价单4、一键平仓5、修改止盈止损6、一键删除当前图表所有挂单 二、指标开发基础 一、脚本开发实战 1、给脚本设置快捷键 在MT5导航栏中&#xff0c;选定脚本&#xff0c;鼠标右击 → 设置热键 …...

【Qt】Ubuntu22.04使用命令安装Qt5和Qt6

1、安装Qt5 注意:Ubuntu22.04已经没有 qt5-default ,因此不能一键安装啦 1)安装核心组件 sudo apt install qtbase5-dev qtchooser qt5-qmake qtcreator2)安装QtCreator sudo apt install qtcreator3)安装工具包、Qt Quick 开发的核心库(qtdeclarative5-dev) sudo a…...

海康设备http监听接收报警事件数据

http监听接收报警事件数据 海康获取设备报警事件数据两种方式&#xff1a; 1、sdk 布防监听报警事件数据&#xff08;前面文章有示例&#xff09; 2、http监听接收报警事件数据 http监听接收报警事件数据&#xff0c;服务端可以使用netty通过端口来监听获取事件数据。 WEB 端…...

【MVCC快照如何实现】

MVCC(多版本并发控制)快照的实现原理 MVCC(Multi-Version Concurrency Control)是现代数据库实现事务隔离级别的核心技术&#xff0c;它通过数据多版本和快照机制来实现高效的并发控制。下面我将详细解析MVCC快照的实现机制。 一、MVCC核心组件 1. 版本链结构 MVCC通过以下…...

STM32中不同FLASH的芯片启动文件选择规则

F103ZET6的FLASH大小是512K&#xff0c;所以选择startup_stm32f10x_hd.s F103C8T6的FLASH大小是64K&#xff0c;所以选择startup_stm32f10x_md.s 移植需要注意的事项&#xff1a; 从ZET6到C8T6&#xff0c;需要更改 1&#xff09;启动文件 2&#xff09;C/C选项卡...

树莓集团商业模式解析:树莓集团是国企吗?

树莓集团作为中国市场的重要企业实体&#xff0c;其所有制性质一直受到业界关注。从公开资料显示&#xff0c;树莓集团并非传统意义上的国有企业&#xff0c;而是一家具有混合所有制特征的现代化企业集团。其股权结构中既包含国有资本成分&#xff0c;也吸纳了社会资本和民营投…...

mock.js模拟数据

MOCK模拟后端数据 1.按照mock.js npm install mockjs2.在src目录下建立mock目录&#xff0c;在该目录下建立index.js文件&#xff0c;该文件中写上你所需要的数据&#xff0c;示例如下&#xff1a; import Mock from mockjs let data Mock.mock("/data/person",&…...

如何自动规整化(格式化)HTML

如果你想要自动规整化&#xff08;格式化&#xff09;HTML&#xff0c;可以使用以下方法&#xff1a; 方法 1&#xff1a;使用 VS Code 进行 HTML 格式化&#xff08;推荐&#xff09; 步骤 安装 Visual Studio Code打开你的 HTML 文件按下 Shift Alt F&#xff08;Windows…...

MySQL数据库入门

目录 前言 一、安装软件 二、普通指令使用 三、MySQL接口API相关函数 1、API函数使用步骤 2、mysql_init-MYSQL对象初始化 3、mysql_real_connect()——数据库引擎建立连接 4、mysql_close()——关闭数据库连接 5、mysql_query()——查询数据库某表内容 6、mysql_stor…...

SpringBoot集成Couchbase开发与实践

1 前言 1.1 什么是Couchbase Couchbase 是一个高性能的 NoSQL 数据库,支持文档存储、内存缓存和分布式计算。它结合了内存数据库的速度和灵活性与传统数据库的持久性和查询能力。 1.2 Couchbase的特点与优势 高性能:利用内存缓存加速数据访问。可扩展性:支持水平扩展,能…...

一周掌握Flutter开发--8. 调试与性能优化(上)

文章目录 8. 调试与性能优化核心技能8.1 使用 Flutter DevTools 分析性能8.2 检查 Widget 重绘&#xff08;debugPaintSizeEnabled&#xff09;8.3 解决 ListView 卡顿&#xff08;ListView.builder itemExtent&#xff09; 其他性能优化技巧8.4 减少 build 方法的调用8.5 使用…...

动态路由机制MoE专家库架构在多医疗AI专家协同会诊中的应用探析

随着医疗人工智能技术的飞速进步,AI在医学领域的应用日益增多,尤其是在复杂疾病的诊断和治疗中,AI技术的应用带来了巨大的潜力。特别是动态路由机制混合专家(Mixture of Experts,MoE)架构,因其灵活、高效的特点,正逐渐成为实现多AI专家协同会诊的关键技术。通过将多个不…...

Linux上位机开发实践(开源框架和开源算法)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 做嵌入式软件开发&#xff0c;如果软件本身比较简单&#xff0c;只是图形界面显示&#xff0c;那么相关的开发工作并不难。最主要的内容也就是数据…...

算法时间复杂度分析

1. 基本概念 大 O 符号 O(f(n)) 表示算法的最坏情况复杂度&#xff0c;即算法在最不利情况下所需的基本操作数不会超过 O(f(n))的级别。例如&#xff0c;表示当输入规模 n 增大时&#xff0c;算法运行时间上界是某个常数乘以 。 Ω 符号 Ω(f(n)) 表示算法的下界&#xff0c;即…...

数据库基础知识点(系列五)

创建表&#xff0c;设置约束&#xff0c;修改表&#xff0c;删除表&#xff0c;表中数据的操作(insert,修改&#xff0c;删除) 1&#xff0e;在第5章习题创建的 “仓库库存”数据库中完成下列操作。 (1)创建“商品”表&#xff0c;表结构如表6-4&#xff1a; 表6-4 “goods”…...

C++中使用ShellExecute函数调用其他窗口程序时,参数设置为隐藏,后续能通过发消息给这个被调用程序显示,能显示出来窗口吗

文章目录 一、可行性分析二、实现步骤1. 启动程序并隐藏窗口2. 获取目标窗口句柄3. 发送消息显示窗口方法1&#xff1a;发送WM_SHOWWINDOW方法2&#xff1a;发送WM_SYSCOMMAND恢复窗口方法3&#xff1a;直接调用ShowWindow&#xff08;推荐&#xff09; 三、代码示例四、关键注…...

使用 AI 生成 页面

当前使用的是 火山引擎 提供的 deepseek-v3-241226 思考 如何让AI可以按自己的想法一步步生成页面&#xff1f; 我们要把要生成的内容分段的给到它&#xff0c;让它按步聚完成。 如生成一个列表页 依据所定义的接口。生成API依赖定义接口 生成 状态管理模块依赖上状态管理…...

【人工智能】机器学习中的评价指标

机器学习中的评价指标 在机器学习中&#xff0c;评估指标&#xff08;Evaluation Metrics&#xff09;是衡量模型性能的工具。选择合适的评估指标能够帮助我们更好地理解模型的效果以及它在实际应用中的表现。 一般来说&#xff0c;评估指标主要分为三大类&#xff1a;分类、…...

shell脚本运行方式 bash 和./区别

在 Linux 或 macOS 这类基于 Unix 的系统里&#xff0c;使用 ./ 运行脚本和使用 bash 运行脚本存在一些差异&#xff0c;下面为你详细说明&#xff1a; 1. 语法与使用方式 使用 ./ 运行脚本&#xff1a; 若要使用 ./ 来运行脚本&#xff0c;需要确保脚本文件具备可执行权限&a…...

ShardingSphere+达梦数据库分表操作

背景 随着数字经济时代的全面到来&#xff0c;数据量呈现爆炸式增长&#xff0c;传统单机数据库在性能、扩展性和可用性方面面临严峻挑战。分布式数据库技术应运而生&#xff0c;成为解决海量数据存储与处理的关键方案。在这一背景下&#xff0c;Apache ShardingSphere作为一款…...

WordPress上传图片时显示“未提供数据”错误

在WordPress中上传图片时显示“未提供数据”的错误&#xff0c;通常是由多种原因引起的&#xff0c;以下是一些常见的问题及其解决方法&#xff1a; 1. 文件权限问题 WordPress需要正确的文件和目录权限才能正常上传图片。如果权限设置不正确&#xff0c;可能会导致无法上传图…...

AP CSA FRQ Q2 Past Paper 五年真题汇总 2023-2019

Author(wechat): bigshuang2020 ap csa tutor, providing 1-on-1 tutoring. 国际教育计算机老师, 擅长答疑讲解&#xff0c;带学生实践学习。 热爱创作&#xff0c;作品&#xff1a;ap csa原创双语教案&#xff0c;真题梳理汇总&#xff0c; AP CSA FRQ专题冲刺, AP CSA MCQ小题…...

海量数据场景题--查找两个大文件的URL

查找两个大文件共同的URL 给定 a、b 两个文件&#xff0c;各存放 50 亿个 URL&#xff0c;每个 URL 各占 64B&#xff0c;找出 a、b 两个文件共同的 URL。内存限制是 4G。 操作逻辑&#xff1a; 使用哈希函数 hash(URL) % 1000​ 将每个URL映射到0-999的编号 文件A切割为a0, a1…...

Spring AI Alibaba 工具(Function Calling)使用

一、工具(Function Calling)简介 Spring AI Alibaba工具(Function Calling)&#xff1a;https://java2ai.com/docs/1.0.0-M6.1/tutorials/function-calling/ 1、工具(Function Calling) “工具&#xff08;Tool&#xff09;”或“功能调用&#xff08;Function Calling&#xf…...

汽车方向盘开关功能测试的技术解析

随着汽车智能化与电动化的发展&#xff0c;方向盘开关的功能日益复杂化&#xff0c;从传统的灯光、雨刷控制到智能语音、自动驾驶辅助等功能的集成&#xff0c;对开关的可靠性、耐久性及安全性提出了更高要求。本文结合北京沃华慧通测控技术有限公司&#xff08;以下简称“慧通…...

9-100V输入替代CYT5030/LM5030高压双路电流模式PWM控制器

产品描述: PC3530高压 PWM 控制器包含实现推挽和桥式拓扑所需的所有功能&#xff0c;采用电流模式控制&#xff0c;提供两个交替栅极驱动器输出。PC3530内置高压启动稳压器&#xff0c;可在 9V~100V 的宽输入电压范围内工作。芯片内部还集成有误差放大器、精密基准、两级过流保…...

详细讲解c++中线程类thread的实现,stl源码讲解之thread

Thread 本节我们来详细介绍一下c中的线程类thread&#xff0c;在讲解的过程中会用到大量模板的知识&#xff0c;可以去看c详解模板泛型编程&#xff0c;详解类模板的实现为什么不能放在cpp文件_泛型函数 cpo-CSDN博客 源码: template <class _Fn, class... _Args, enable_…...

PostgreSQL详解

第一章&#xff1a;环境部署与基础操作 1.1 多平台安装详解 Windows环境 图形化安装 下载EnterpriseDB安装包&#xff08;含pgAdmin&#xff09; 关键配置项说明&#xff1a; # postgresql.conf优化项 max_connections 200 shared_buffers 4GB work_mem 32MB 服务管理命…...

系统思考—第五项修炼

感谢【汇丰】邀请&#xff0c;为其高阶管理者交付系统思考系列项目。这不仅是一次知识的传递&#xff0c;更是一次认知的升级。 系统思考&#xff0c;作为《第五项修炼》的核心能力&#xff0c;正在帮助越来越多的管理者突破碎片化决策的困局&#xff0c;建立看见全貌的智慧与…...

如何使用QuickAPI生成带参数的数据API(基于原生SQL)

目录 一、示例表结构 二、准备工作 三、创建带参数的数据API 步骤 1&#xff1a;登录 QuickAPI 平台 步骤 2&#xff1a;连接数据库 步骤 3&#xff1a;配置基础信息 步骤 4&#xff1a;编写 SQL 并添加参数 步骤 5&#xff1a;测试并发布API 步骤 6&#xff1a;验证A…...