【华为云开发者学堂】基于华为云 CodeArts CCE 开发微服务电商平台

实验目的

通过完成本实验,在 CodeArts 平台完成基于微服务的应用开发,构建和部署。

● 理解微服务应用架构和微服务模块组件
● 掌握 CCE 平台创建基于公共镜像的应用的操作
● 掌握 CodeArts 平台编译构建微服务应用的操作
● 掌握 CodeArts 平台部署微服务应用的操作

实验场景

实验以构建和部署 giftshop 的微服务应用为例,创建了 giftshop 中的用户、仓库、订单服务,并分离了各服务的数据库应用,结合服务中心和服务网关实现了基于微服架构的电商平台开发与搭建。

实验步骤

1. 登录云账户

进入【实验操作桌面】,点击手册上方的【预置实验环境】按钮,系统将自动为您创建好实验所需的 VPC ,安全组,创建时间约为 1 分钟。

2. 创建云容器引擎 CCE

步骤 1 进入华为云控制台,点击左侧服务列表,搜索 CCE 后,点击进入云容器引擎 CCE 控制台。

步骤 2 在云容器引擎界面,点击创建“CCE Standard 集群”。

步骤 3 根据以下说明给出配置项购买 CCE

① 集群配置:

○ 计费模式:按需计费

○ 集群名称:demo

○ 版本:v1.25

○ 集群管理规模:50节点

○ 高可用:否

○ 网络模型:容器隧道网络

○ 虚拟私有云:选择已创建的虚拟私有云,如vpc-hce

○ 所在子网:选择已创建的子网,如subnet-hce

其他配置项保持默认,点击“下一步:插件配置”。

② 插件配置:

取消所有已勾选的插件,点击“下一步:规格确认”。

③ 规格确认:

勾选知晓说明,点击“提交”

步骤 4 等待集群创建成功后(约10分钟左右),在集群下方点击“创建节点”

步骤 5 根据以下说明给出配置项

○ 计费模式:按需计费

○ 可用区:可用区1

○ 规格:8核|32GB(请选择至少8核32G节点)

○ 操作系统:公共镜像 EulerOS2.9

○ 密码:自定义

○ 弹性IP:自动创建

其他配置项保持默认,点击“下一步:规格确认”

步骤 6 在规格确认页面,勾选相关说明,点击“提交”。

步骤 7 节点创建需3分钟左右,请等待节点资源创建完成。

3. 创建容器镜像组织

步骤 1 回到华为云控制台,点击左侧服务列表,搜索 SWR 后,点击进入容器镜像服务 SWR 控制台。

步骤 2 在 SWR 控制台点击“创建组织”。

步骤 3 设置一个组织名称,注意组织名全局唯一,这里以 giftshop1 为例。请记录自己设置的组织名,作为后续实验中的参数进行配置。

4. 创建项目和导入仓库

步骤 1 回到华为云控制台,点击左侧服务列表,搜索 CodeArts 后,点击进入软件开发生产线 CodeArts 控制台。

步骤 2 在 CodeArts 控制台,点击“立即使用”

步骤 3 在“所有项目”界面,选择选用“看板”。

步骤 4 输入项目名称为“microservice_giftshop”,点击“确定”并进行个人信息设置。

步骤 5 点击“代码>代码托管”,进入到代码仓库界面。

步骤 6 点击“新建普通仓库”的下拉箭头,选择“导入外部仓库”。

步骤 7 将以下仓库地址复制到“源仓库路径”中,点击“下一步”。

拷贝代码https://codehub.devcloud.cn-north-4.huaweicloud.com/microservice_giftshop00001/Gift-MicroServices.git

步骤 8 在创建仓库页面中直接点击“确定”。

步骤 9 重复上述步骤,导入以下外部仓库

拷贝代码https://codehub.devcloud.cn-north-4.huaweicloud.com/microservice_giftshop00001/Gift-UI.git

步骤 10 可以看到有以下两个仓库已导入到本项目中。

5. 创建数据库和 RabbitMQ 应用

5.1 创建数据库应用

需要依次创建和配置user、store、bill服务需要的数据库:mysql-user,mysql-store,mysql-bill,操作步骤以mysql-user为例。

步骤 1 回到云容器引擎控制台,点击“工作负载>无状态负载>创建无状态工作负载”

步骤 2 填写如下工作负载基本信息后,点击“下一步”。

○ 工作负载名称:mysql-user

○ 集群名称:demo(选择已创建的集群)

○ 命名空间:default

○ 实例数量:1

步骤 3 在容器设置中,“添加容器”,选择“镜像中心”并找到mysql镜像,点击“确定”。

步骤 4 镜像版本选择“5.6”,容器规格保持默认。

步骤 5 在下方“环境变量”列表中,“添加环境变量”后,点击“下一步:工作负载访问设置”。

○ 变量名称:MYSQL_ROOT_PASSWORD

○ 变量/变量引用:123456

步骤 6 在“服务设配置”中,点击“+”添加服务。设置以下服务参数后点击确定。

○ 服务名称:mysql-user

○ 访问类型:节点访问

○ 服务亲和:节点级别

○ 端口配置:TCP|3306|3306|指定端口|30036

步骤 7 点击“创建工作负载”。

步骤 8 返回工作负载列表,稍等片刻后,可以看到mysql-user已在运行中。

步骤 9 点击“mysql-user”,进入详情界面。

步骤 10 选择“访问方式”页签,记录mysql-user所对应的集群内部域名访问地址。此地址将用作后续服务配置中。

步骤 11 重复上步骤,完成mysql-store,mysql-bill工作负载的创建,注意改写相应的工作负载和名称。并按照如下参数,设置服务的端口配置。同时记录服务的访问地址。

① mysql-store:

端口配置:TCP|3306|3307|指定端口|30037

② mysql-bill:

端口配置:TCP|3306|3308|指定端口|30038

步骤 12 完成后即可看到列表中的3个mysql应用。

5.2 初始化数据库

步骤 1 回到华为云控制台,点击左侧服务列表,搜索 DAS ,进入数据管理服务 DAS 控制台

步骤 2 在开发工具页面点击“新增数据库实例登录”。

步骤 3 填写如下数据库信息:

数据库引擎:MySQL

数据库来源:ECS自建数据库,选择CCE节点实例

端口:30036

登录用户名:root

密码:123456(为前面步骤中所设置容器的环境变量密码)

描述:mysql-user

步骤 4 点击“测试连接”,测试成功后,点击“确定”。

步骤 5 返回登录列表中,在对应的mysql数据库后面点击“登录”。

步骤 6 点击上方导航栏的“SQL操作>SQL查询”。

步骤 7 在SQL窗口中输入如下命令,点击“执行SQL”,创建数据库gift-user。

拷贝代码CREATE DATABASE `gift-user`;

(注意是反引号,一般在键盘~符号下)

步骤 8 可以在“首页”看到已创建好的数据库。

步骤 9 重复步骤2~8,通过正确的端口号登录到对应的数据库中,并创建与mysql-store 和mysql-bill所对应的数据库实例gift-store和gift-bill。

5.3 创建 RabbitMQ 应用

参考创建MySQL数据库应用步骤创建RabbitMQ应用

步骤 1 登录到1.5中的云容器引擎控制台,点击“工作负载>无状态>创建无状态工作负载”

步骤 2 填写如下工作负载基本信息

○ 工作负载名称:rabbitmq

○ 命名空间:default

○ 实例数量:1

步骤 3 在容器设置中,“添加容器”,选择“开源镜像中心”并找到rabbitmq镜像,点击“确定”。

步骤 4 镜像版本选择“3.7-management”,容器规格保持默认。

步骤 5 在下方“环境变量”列表中,添加如下环境变量后,点击“下一步:工作负载访问设置”。

① 变量名称:RABBITMQ_DEFAULT_USER 变量/变量引用:root

② 变量名称:RABBITMQ_DEFAULT_PASS 变量/变量引用:123456

步骤 6 在工作负载访问设置中,点击“添加服务”。设置服务参数后点击确定。

访问类型:集群内访问

服务名称:rabbitmq

端口配置:TCP|5672|5672

步骤 7 直接点击“创建”。返回工作负载列表,稍等片刻后,可以看到rabbitmq已在运行中。

步骤 8 点击rabbitmq,进入到详情页,记录rabbitmq服务的集群内部域名访问地址。

至此完成数据库和rabbitmq应用的创建。

6. 构建和部署电商平台应用

6.1 gift-server 服务构建和部署

6.1.1 gift-server服务的构建

步骤 1 登录到 CodeArts 平台,进入所创建的 microservice_giftshop 项目中。

步骤 2 选择“持续交付>编译构建”。

步骤 3 点击“新建任务”。

步骤 4 设置如下参数,点击“下一步”。

任务名称:gift-server

源码仓库:Gift-MicroServices

分支:master

其他配置项默认即可。

步骤 5 选择“Maven”模版,点击“确定”。

步骤 6 在"Maven构建"->"命令"中,输入以下Maven构建命令替换原有命令。

拷贝代码mvn -f gift-server/pom.xml -U package

步骤 7 删除原有的“上传软件包到发布库”。

步骤 8 选择“添加步骤”,添加构建步骤为“制作镜像并推送SWR仓库”。

步骤 9 配置如下内容:

步骤显示名称:保持默认

工具版本:docker18.03

镜像仓库:华为云镜像仓库SWR

授权用户:当前用户

组织:giftshop1(填写前面已创建的组织名称)

镜像名字:gift-server

镜像标签:1.0.0

工作目录:保持默认

Dockerfile路径:./gift-server/Dockerfile

步骤 10 设置完成后,点击“新建并执行”。最后可以看到任务成功执行完成。

6.1.2 gift-server服务的部署

步骤 1 创建yml文件。

回到云容器引擎,点击工作负载下面的“无状态工作负载”,并点击“创建无状态工作负载”:

① 基本信息:

○ 工作负载名称:gift-server

○ 命名空间: default

○ 实例数量:1

② 容器配置:

○ 镜像名称:选择我的镜像:gift-server 并确定。

○ 镜像版本:1.0.0

○ 内存申请及限制配额均为:2048

③ 服务配置:

○ Service 名称:gift-server

○ 访问类型:集群内访问

○ 端口配置:TCP|8000|8000

其他默认,点击右侧的YAML创建,下载保存对应文件代码至本地。然后点击下方的“创建工作负载”,完成无状态工作负载的创建。

点击刚才创建的无状态工作负载(gift-server),进入访问方式点击“访问方式”,记录gift-server的集群内部域名访问地址。此地址将用于修改gift-zuul代码中对应的地址。

步骤 2 回到CodeArts“编译构建”页面,构建完成后,点击“部署”。

步骤 3 点击“新建应用”。

步骤 4 应用名称为gift-server,点击“下一步”。

步骤 5 选择系统模板中的“空白模板”,点击“下一步”

在“容器类”中选择Kubernetes Manifest部署,点击添加,信息配置如图。

步骤 6 配置如下内容:

○ 步骤显示名称:保持默认

○ yml文件来源:制品仓库

○ 选择yaml文件/文件夹:上传已下载的gift-server.yaml文件

上传成功后回到配置界面,如下所示:

○ 集群名称:demo

○ 命名空间:default

步骤 7 点击右上方的“保存并执行”,执行部署任务。

部署任务执行成功后,如下图:

至此完成gift-server微服务应用的构建和部署。

6.2 确认服务配置文件

下面将对gift-zuul、gift-user、gift-store、gift-bill的application.yaml文件进行配置确认,若一致则不需要进行修改,如有不同请按下表进行修改。

此前已经记录的mysql、rabbitmq和gift-server应用的域名访问地址和相关参数如下,此表作为参考,请根据具体情况进行记录。

6.2.1 gift-zuul 服务配置文件确认

步骤 1 在 CodeArts 实践项目中,点击“代码>代码托管”。

步骤 2 进入“Gift-MicroServices”代码仓库。

步骤 3 找到gift-zuul/src/main/resources/application.yml文件

步骤 4 将获取的gift-server的访问地址对比如下位置。若一致,则不需进行改动,若不一致,则进行点击右上方编辑替换。

6.2.2 gift-user服务配置文件确认

gift-store和gift-bill服务配置文件确认方法与gift-user类似,此处以gift-user配置文件为例。

步骤 1 找到gift-user/src/main/resources/application.yml文件,确认以下三处代码:

① mysql-user服务的域名地址和密码

② rabbitmq服务的域名、用户名和密码

③ gift-server服务的域名地址

步骤 2 若与你之前的配置有所不同,请编辑修改至与你配置一致,若相同则不用修改。

步骤 3 根据步骤1~2确认gift-store和gift-bill配置文件。

6.3 执行编译构建任务

按照gift-server构建任务的创建方式,依次对gift-user,gift-store,gift-bill,gift-zuul进行构建。

步骤 1 在gift-server构建任务的“操作”列选择“复制”图标。

步骤 2 任务名称修改为:gift-user。

步骤 3 点击上方的“构建步骤”栏,替换Maven构建命令行中的gift-server为gift-user。

步骤 4 点击“制作镜像并推送到SWR仓库”步骤,替换镜像名字为“gift-user”,并替换Dockerfile路径为“gift-user”。 然后点击复制并执行。

步骤 5 进行任务复制,并按步骤2-步骤4替换步骤中相应的名字,完成gift-store,gift-bill,gift-zuul的构建任务。

6.4 执行部署任务

按照gift-server部署任务的创建方式,依次对gift-user,gift-store,gift-bill,gift-zuul进行部署。

步骤 1 复制之前已下载的gift-server.yml文件,全文替换gift-server分别为gift-user,gift-store,gift-bill,gift-zuul,并修改端口号为8001, 8002, 8003, 8004,并进行保存。

替换方式可参考:

① vim的全局替换命令为

拷贝代码:%s/gift-server/gift-user/g

② 滑动到文件最后,进入编辑修改服务对应的两个端口

步骤 2 在gift-server部署任务的“操作”列点击“复制”图标。

步骤 3 点击“基本信息”一栏,修改任务名称为:gift-user。

步骤 4 回到“部署步骤”一栏,上传对应的gift-user.yml文件,然后点击“保存并执行”。

步骤 5 部署完成后,对该部署任务进行复制,按照步骤3-步骤4,完成gift-store,gift-bill,gift-zuul的部署任务。

步骤 6 完成部署后,可以查看到所有部署的任务状态。

6.5 gift-ui 服务构建和部署

6.5.1 gift-ui 服务配置文件修改

步骤 1 登录到云容器引擎控制台,在“节点管理”下找到节点的弹性公网IP。记录该IP地址。

步骤 2 在CodeArts实践项目中,点击“代码>代码托管”。

步骤 3 点击进入“Gift-UI”代码仓库。

步骤 4 打开ll_user.html文件,点击“编辑”。

步骤 5 Ctrl+F 搜索 “http://” 替换匹配位置的ip地址+端口号(ip为步骤1中的弹性公网IP,端口号此实践设置为30008,例如此处为http:// 114.116.228.69:30008),注意替换所有对应位置的地址。

步骤 6 输入备注信息后点击“确定”,保存修改。

步骤 7 按照上述步骤4~6的方法依次将ll_store.html、ll_bill.html、login.html文件中对应的访问地址替换为新的地址。注意替换文件中所有对应位置的地址,每文件约1~5处。

6.5.2 gift-ui服务的构建

步骤 1 进入CodeArts编译构建界面,点击“新建任务”。

○ 任务名称:Gift-UIxx

○ 源码仓库:Gift-UI

○ 分支:master

其他默认即可,点击“下一步”。

步骤 2 选择Shell模版,点击“下一步”。

步骤 3 在“命令”中,输入以下shell命令。

拷贝代码tar -zcvf gift-ui.tar.gz ./*

步骤 4 选择“+”号,添加构建步骤为“制作镜像并推送SWR仓库”。

步骤 5 配置如下内容:

○ 步骤显示名称:保持默认

○ 工具版本:docker18.03

○ 镜像仓库:华为云镜像仓库SWR

○ 授权用户:当前用户

○ 组织:giftshop1(填写1.6中的组织名称)

○ 镜像名字:gift-ui

○ 镜像标签:1.0.1

○ 工作目录:保持默认

○ Dockerfile路径:./Dockerfile

步骤 6 点击“新建并执行”。片刻之后,可以看到构建成功。

6.5.3 gift-ui服务的部署

步骤 1 创建yml文件及对应的无状态工作负载。修改如下,然后点击“下一步:工作负载访问设置”:

○ 工作负载名称:gift-ui。

○ 集群名称:demo

○ 命名空间:default

○ 实例数量:1

○ 镜像选择在“我的镜像”选择对应gift-ui镜像

○ 镜像版本:1.0.1

○ CPU申请配额/CPU限制配额:0.3

○ 内存申请配额/内存限制配额:2048

点击“添加服务”按钮,进行如下配置

○ Service名称:gift-ui

○ 访问类型:节点访问

○ 服务亲和:节点级别

○ 端口配置:TCP|80|30008

保存如下代码至gift-ui.yml文件,并完成创建。

步骤 2 构建完成后,点击“部署”。回到部署页面,对gift-zuul部署任务进行复制。

步骤 3 修改任务名称为gift-ui。

步骤 4 点击“部署步骤”,在“发布仓库”上传对应的gift-ui.yml文件。

步骤 5 完成配置后,点击“保存并执行”。执行部署任务。

步骤 6 等待片刻后,显示部署成功。

7. 实验结果验证

7.1 查看构建镜像

步骤 1 登录容器镜像服务SWR,打开链接https://www.huaweicloud.com/s/JVNXUiU,点击“立即使用”。

步骤 2 在“我的镜像”中可以看到所有构建成功的镜像。

7.2 验证网页能够正常使用

步骤 1 回到云容器引擎 CCE 控制台。

步骤 2 在“工作负载>无状态工作负载”下,可以查看到所有部署成功的应用。

步骤 3 由于前面步骤设置的为节点访问,故gift-shop的访问地址为http://节点ip:端口号,端口号为前面步骤设置的30008。

步骤 4 访问可以打开gift-shop的登录界面。

步骤 5 加入后缀地址,如http://节点ip:端口号/ll_user.html,可以访问对应的用户管理界面。

步骤 6 在用户管理界面,自定义添加一个用户,点击“save”。

步骤 7 可以看到已增加一行用户列表。

步骤 8 点击右上角“logout”退出当前界面。

步骤 9 使用刚刚创建的用户登录到giftshop网站。

步骤 10 可以发现用户已经生效,可以成功登录,你也可以按照上述方法进入到对应的仓库管理和订单管理页面,添加仓库和订单列表。

7.3 验证数据已成功写入数据库

步骤 1 登录数据管理服务DAS,点击“数据库免费登录”。

步骤 2 登录到mysql-user所对应的数据库中(端口号为30036的数据库)。

步骤 3 点击数据库“gift-user”。

步骤 4 在对应表“user”后面点击“打开表”。

步骤 5 可以看到已有一条已创建的用户记录,该记录即为前面创建的shop用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/952727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计科高可用服务器架构实训(防火墙、双机热备,VRRP、MSTP、DHCP、OSPF)

一、项目介绍 需求分析: (1)总部和分部要求网络拓扑简单,方便维护,网络有扩展和冗余性; (2)总部分财务部,人事部,工程部,技术部,提供…

【C++入门】详解合集

目录 💕1.C中main函数内部———变量的访问顺序 💕2.命名空间域 namespace 💕3.命名空间域(代码示例)(不要跳) 💕4.多个命名空间域的内部重名 💕5.命名空间域的展开 …

预编译SQL

预编译SQL 预编译SQL是指在数据库应用程序中,SQL语句在执行之前已经通过某种机制(如预编译器)进行了解析、优化和准备,使得实际执行时可以直接使用优化后的执行计划,而不需要每次都重新解析和编译。这么说可能有一些抽…

qemu搭建虚拟的aarch64环境开发ebpf

一、背景 需求在嵌入式环境下进行交叉编译,学习ebpf相关技术,所以想搭建一个不依赖硬件环境的学习环境。 本文使用的环境版本: 宿主机: Ubuntu24.02 libbpf-bootstrap源码: https://github.com/libbpf/libbpf-boots…

深度学习从入门到实战——卷积神经网络原理解析及其应用

卷积神经网络CNN 卷积神经网络前言卷积神经网络卷积的填充方式卷积原理展示卷积计算量公式卷积核输出的大小计算感受野池化自适应均值化空洞卷积经典卷积神经网络参考 卷积神经网络 前言 为什么要使用卷积神经网络呢? 首先传统的MLP的有什么问题呢? - …

2015年西部数学奥林匹克几何试题

2015/G1 圆 ω 1 \omega_1 ω1​ 与圆 ω 2 \omega_2 ω2​ 内切于点 T T T. M M M, N N N 是圆 ω 1 \omega_1 ω1​ 上不同于 T T T 的不同两点. 圆 ω 2 \omega_2 ω2​ 的两条弦 A B AB AB, C D CD CD 分别过 M M M, N N N. 证明: 若线段 A C AC AC, B D BD …

《Spring Framework实战》14:4.1.4.5.自动装配合作者

欢迎观看《Spring Framework实战》视频教程 自动装配合作者 Spring容器可以自动连接协作bean之间的关系。您可以通过检查ApplicationContext的内容,让Spring自动为您的bean解析协作者(其他bean)。自动装配具有以下优点: 自动装配…

JVM之垃圾回收器概述(续)的详细解析

ParNew(并行) Par 是 Parallel 并行的缩写,New 是只能处理的是新生代 并行垃圾收集器在串行垃圾收集器的基础之上做了改进,采用复制算法,将单线程改为了多线程进行垃圾回收,可以缩短垃圾回收的时间 对于其他的行为(…

有一台服务器可以做哪些很酷的事情

有一台服务器可以做哪些很酷的事情 今天我也来简单分享一下,这几年来,我用云服务器做了哪些有趣的事情。 服务器推荐 1. 个人博客 拥有个人服务器,你可以完全掌控自己的网站或博客。 与使用第三方托管平台相比,你能自由选择网站…

灌区闸门自动化控制系统-精准渠道量测水-灌区现代化建设

项目背景 本项目聚焦于黑龙江某一灌区的现代化改造工程,该灌区覆盖广阔,灌溉面积高达7.5万亩,地域上跨越6个乡镇及涵盖17个村庄。项目核心在于通过全面的信息化建设,强力推动节水灌溉措施的实施,旨在显著提升农业用水的…

3.flask蓝图使用

构建一个目录结构 user_oper.py from flask import Blueprint, request, session, redirect, render_template import functools # 创建蓝图 user Blueprint(xkj, __name__)DATA_DICT {1: {"name": "张三", "age": 22, "gender": …

vue3学习日记1 - Pinia

最近发现职场前端用的框架大多为vue,所以最近也跟着黑马程序员vue3的课程进行学习,以下是我的学习记录 视频网址: Day2-02.Pinia-counter基础使用_哔哩哔哩_bilibili 学习日记: vue3学习日记1 - 环境搭建-CSDN博客 vue3学习日…

IP 地址与蜜罐技术

基于IP的地址的蜜罐技术是一种主动防御策略,它能够通过在网络上布置的一些看似正常没问题的IP地址来吸引恶意者的注意,将恶意者引导到预先布置好的伪装的目标之中。 如何实现蜜罐技术 当恶意攻击者在网络中四处扫描,寻找可入侵的目标时&…

Leetocde516. 最长回文子序列 动态规划

原题链接&#xff1a;Leetocde516. 最长回文子序列 class Solution { public:int longestPalindromeSubseq(string s) {int n s.size();vector<vector<int>> dp(n, vector<int>(n, 1));for (int i 0; i < n; i) {dp[i][i] 1;if (i 1 < n &&…

Linux物理地址到虚拟地址的映射

相关理论&#xff1a; Linux中用户空间是无法直操作寄存器的&#xff0c;需要先将寄存器对应的物理地址通过转换成虚拟地址然后在进行操作。 高性能处理器一般会提供一个内存管理单元&#xff08;MMU&#xff09;,该单元辅助操作系统进行内存管理&#xff0c;提供虚拟地址和物理…

openCvSharp 计算机视觉图片找茬

一、安装包 <PackageReference Include"OpenCvSharp4" Version"4.10.0.20241108" /> <PackageReference Include"OpenCvSharp4.runtime.win" Version"4.10.0.20241108" /> 二、准备两张图片 三、编写代码 using OpenCv…

数字孪生助力智慧机场全方位管理

智慧机场利用图扑可视化技术&#xff0c;实现航班动态、乘客流量和行李追踪的实时监控与分析&#xff0c;优化资源配置&#xff0c;提高运营效率&#xff0c;为旅客提供更加便捷的出行体验。

景联文科技提供高质量多模态数据处理服务,驱动AI新时代

在当今快速发展的AI时代&#xff0c;多模态数据标注成为推动人工智能技术进步的关键环节。景联文科技作为行业领先的AI数据服务提供商&#xff0c;专注于为客户提供高质量、高精度的多模态数据标注服务&#xff0c;涵盖图像、语音、文本、视频及3D点云等多种类型的数据。通过专…

【Docker】入门教程

目录 一、Docker的安装 二、Docker的命令 Docker命令实验 1.下载镜像 2.启动容器 3.修改页面 4.保存镜像 5.分享社区 三、Docker存储 1.目录挂载 2.卷映射 四、Docker网络 1.容器间相互访问 2.Redis主从同步集群 3.启动MySQL 五、Docker Compose 1.命令式安装 …

vscode使用Marscode编程助手

下载 vscode 在插件里下载Marscode编程助手 插件完成 在这里点击安装&#xff0c;点击后这里出现AI编程插件。