Vue+Springboot 前后端分离的项目如何部署?

本文转载自:https://fangcaicoding.cn/course/11/58

大家好!我是方才,目前是8人后端研发团队的负责人,拥有6年后端经验&3年团队管理经验,截止目前面试过近200位候选人,主导过单表上10亿、累计上100亿数据量级的业务系统的架构和核心编码。

“学编程,一定要系统化” 是我一直坚持的学习之道。目前正在系统化分享从零到一的全栈编程入门以及项目实战教程

无论你是编程新手,还是有经验的开发者,我都愿意与你分享我的学习方法、项目实战经验,甚至提供学习路线制定、简历优化、面试技巧等深度交流服务。

我创建了一个编程学习交流群(扫码关注后即可加入),秉持“一群人可以走得更远”的理念,期待与你一起 From Zero To Hero!

茫茫人海,遇见即是缘分!一键三连!方才兄送你ElasticSearch系列知识图谱、前端入门系列知识图谱、系统架构师备考资料!

今天,方才兄以个人最近开源的vue+springBoot前后端分离的博客系统为例,分享下前后端分离的项目的部署流程。

这个部署流程,适用于个人项目。企业级项目,都应是基于镜像,容器化部署的,但运行的原理是一致的。后续方才兄也会补充容器化部署的流程。若对你有帮助,记得一键三连哟!9524ecea3d8ee122297e182ea96dc544.png

环境安装

jdk环境安装

fangcai-coding-blog是基于jdk21的,所以直接去oracle官网下载对应平台、对应版本的安装包即可(方才兄也下载了一份,需要的伙伴也可以后台回复【jdk】,直接获取,Windows、mac、linux 均提供了)。

14adf9be9302bf3380bcde03c7def936.png
image-20241104221802559

若需要其他版本,直接官方下载:https://www.oracle.com/java/technologies/downloads/#jdk21-windows

考虑大家学习的方便,方才兄这里会提供windowslinux两个操作系统的安装方式

windows环境安装
  1. jdk-21_windows-x64_bin.zip安装包复制到你的软件安装目录(注意,不要有中文、空格等字符),解压即可,请记住该安装地址,后面要用到。

02445f0ea7e697d547d729578d0e2337.png
image-20241104222621047
  1. 直接windows搜索环境变量,进入环境变量配置页。

3d2af2ee625cbe0ef00f42dd78554acd.png
image-20241104222747189
dffabe0417b26bdb246fa13fa6558e46.png
image-20241104222918337
  1. 编辑系统变量的 path变量值

00c88868b0f3a1c5ba0049375334039d.png
image-20241104223018194
  1. 新建环境变量,将刚才jdk21的安装包下的bin文件夹的全路径复制进来即可(ps:如果安装了多个版本的jdk,谁在上面谁生效)。

7cc725150ade38e913db9474cab082c1.png
image-20241104223320858
  1. win+R,输入cmd,进入命令框,输入java -version,验证配置是否成功,如图能正常输出即正常了。

8c6990929d98c273595b2e1b0cda2e16.png
image-20241104223526176
idea配置jdk

idea中,项目的jdk版本指定(这里方才兄就不细说了,简单放两个图):

cc55a2cd6d92249b4acd21106cdce3f4.png
image-20241104223650203
53042865d7ce80f9fc8874a6b5dc80d8.png
image-20241104223713846
0a0d1f037c11add3271df48ef56e1712.png
image-20241104223729864
linux环境安装

方才兄先建设你已经可以通过xshell等远程管理软件,连接上你的linux服务器了【若你不用linux虚拟机的安装或者说对常用的命令不熟悉,推荐阅读:https://fangcaicoding.cn/course/9/1】

  1. 进入linux服务器,cd 到你期望安装的目录下,使用rz命令,将jdk对应的安装包上传到服务器中;

cd26477d373f8bf3349d3860806acf3c.png
image-20241104224620433
  1. 使用 tar -xvf jdk-21_linux-x64_bin.tar.gz 解压文件,方才兄这里安装过了,可以使用 mv 命令给文件夹重命名下,记住该地址。

    3a7f64b891a8f3991b8465e658f28778.png
    image-20241104225029980
  2. linux系统就没必要去配置环境变量了,如果你只是运行项目的话,方才兄更习惯直接使用安装路径进行使用。

  3. 但还是简单截图,分享下配置环境变量的过程:

# 编辑文件
vim  ~/.bashrc#在文件中添加以下内容。注意 JAVA_HOME 是步骤2你自己的安装位置
export JAVA_HOME=/opt/java/jdk-21
export PATH=$JAVA_HOME/bin:$PATH# 保存文件,使配置生效
source ~/.bashrc
# 最后验证即可  
java -version
eba3b9d10a73409fa7f827e5dc8ed201.png
image-20241104230351790

node环境

window环境安装

ps:如果是部署上线,是不需要node环境的,仅用于本地运行需要。

本项目基于node v20.18.0(LTS),建议和方才兄的版本保持一致,防止出现一些奇奇怪怪的问题。(官网下载地址:https://nodejs.org/en/download/prebuilt-installer,也可以直接回复【jdk】获取,方才兄和jdk的依赖一起提供了的。)

windows环境安装为例:

  1. 下载好安装包node-v20.18.0-x64.msi后,直接双击安装即可,建议更改下安装目录,其他配置都不用变更,直接使用默认的即可:

84a8d46b0a6e17ad39019b78586663cf.png
image-20241105125821298
  1. 验证安装情况:

    C:\Users\moufa>node -v
    v20.18.0
idea配置使用

直接在settings中的配置node即可:

2f223101015973de1bd01d03260a01dd.png
image-20241105152707483

数据库初始化

本站使用的数据库是mysql,建议版本5.7及以上即可:

  1. 手动先create database xx你的DB名称,再use xx你的DB名称

  2. 本站的sql脚本都放在了/upgrade路径下;

  3. 先复制init-latest.sql的内容执行,创建数据库表;

  4. 再复制init-data.sql的内容执行,初始化角色权限等数据;

本地运行

本站采用的前后端分离架构,所以在本地运行,需要分别启动后端接口和前端vue项目,入口如下:

975cae513b1f13cac692bd471294bba4.png
image-20241105160343825

后端运行

  • 项目默认启动的是dev环境,需要将数据库的信息修改为你们自己的。

bd77bc0abbf03887c206789b6fb2c136.png
image-20241105160622502
  • 进入启动类AppApplication运行即可:

7901e9cdb3da8b4d8250d3afeb6850ca.png
image-20241105160743292
  • 启动成功的效果(ps:Doc 的地址是,在线接口文档地址):

5330b3a66bf19a135c200f09cb78f1de.png
image-20241105161159432

前端运行

  • 在后端接口服务启动成功后,基于启动信息,去修改前端项目的vite.config.js中的后端接口的代理地址为实际地址。

b2f7fe8afcded01ddaf6093194d87adf.png
image-20241105161004536
  • 安装前端依赖,打开fangcai-blog-ui/vite.config.js文件,idea右上角有提示,可直接点击安装或者进入命令行,手动运行npm install,等待安装包安装完成,会自动生成目录fangcai-blog-ui/node_modules

c1b242a2629f3f1022876362369c30f4.png
image-20241105161501248
  • 打开fangcai-blog-ui/package.json文件,点击 dev的启动按钮,或者命令行输入npm run dev

296e363f9216ac8a2365c2235437aa81.png
image-20241105161645053
  • 有几个网卡,都有个访问地址,随意访问一个即可:

8681fb6543b5585428f00db6a0dddff1.png
image-20241105162101618
77b61671306f86033bf9ba5fce6b3314.png
image-20241105162317765

后端部署

项目打包

  1. 直接使用mavenpackage命令,进行打包即可:

30a08a131b57417544dddbafac73944a.png
image-20241029233604309
  1. 打包完成,会自动生成target文件夹,下面的xxx.jar就是可执行的运行包

418bcc09505760c22eb5b2cc089745cc.png
image-20241029233629412

部署至linux服务器

  1. 将打包好的jar包,使用rz命令上传到 linux服务器中对应的目录中:

5cc014d452b45c714898765735684d46.png
image-20241104225414936
  1. 方才兄这里假设你已经安装好了mysql数据库,并完成了数据库初始化操作。

  2. 直接使用java -jar运行jar包:

    /opt/java/jdk-21/bin/java -jar -Xmx1024M -Xms256M  /opt/blog/fangcai-blog-app-1.0.20240916.jar --server.port=7100 --spring.profiles.active=prod --knife4j.enable=true --knife4j.production=true --fangcai.db.name=数据库名 --fangcai.db.user=数据库用户名 --fangcai.db.pwd=数据库密码 --wx.token=微信token可随便给值
243b77c311278ccf7a86bd3292adab76.png
image-20241104231745453

线上环境部署

刚才的部署方式,如果你退出会话后,服务器就会自动停止运行,当然可以通过nohup命令后台运行,这也是比较常用的:

nohup /opt/java/jdk-21/bin/java -jar -Xmx1024M -Xms256M  /opt/blog/fangcai-blog-app-1.0.20240916.jar --spring.profiles.active=prod --knife4j.enable=true --knife4j.production=true --fangcai.db.name=数据库名 --fangcai.db.user=数据库用户名 --fangcai.db.pwd=数据库密码 --wx.token=微信token可随便给值

但如果是线上环境,建议使用systemd启动守护进程【ps:若不了解的,可以百度下,方才兄这里就直接贴脚本,让大家使用了】,实现开机自动启动功能

  1. 使用文本编辑器,如 vim 创建并编辑 family-app.service 文件。

    vi /etc/systemd/system/fangcai_blog.service
  2. 写入内容:

    [Unit]
    # 服务名称,可自定义
    Description = fangcai_blog.service
    After = network.target syslog.target
    Wants = network.target
    [Service]
    Type = simple
    # 启动命令
    ExecStart = /opt/java/jdk-21/bin/java -jar -Xmx1024M -Xms256M  /opt/blog/fangcai-blog-app-1.0.20240916.jar --spring.profiles.active=prod --knife4j.enable=true --knife4j.production=true --fangcai.db.name=数据库名 --fangcai.db.user=数据库用户名 --fangcai.db.pwd=数据库密码 --wx.token=微信token可随便给值
    [Install]
    WantedBy = multi-user.target
  3. 使用 systemd 命令,管理  family-app.service :

    # 重新加载
    systemctl daemon-reload
    # 配置 开机自启
    systemctl enable fangcai_blog
    # 启动 
    systemctl start fangcai_blog
    # 停止 
    systemctl stop fangcai_blog
    # 重启 
    systemctl restart fangcai_blog
    # 查看运行状态
    systemctl status fangcai_blog
    # 禁止开机启动
    systemctl disable fangcai_blog
64d25003f8f3cdbaf35ca2689dc92d26.png
image-20241104231912744

前端部署

项目打包

  1. 直接运行 package.json下的 build命令即可:

af9388b40722d7f32c92eef2bb6e98f8.png
image-20241029233723218
  1. 打包完成,会在当前项目路径下自动生成一个dist的文件夹,整个文件夹都是前端打包的代码。

77b1e64d789c94d391d572cf2519ecc5.png
image-20241029234627655

部署

前端的部署需要有一个web服务器,常用的是nginx,因为方才兄之前部署过halo,就使用了1panel运维面板(用的宝塔也是可以的,都类似),使用的服务器就是OpenResty了。

  1. 先安装OpenResty,这个1panel操作很简单,就不截图了。

  2. 使用OpenResty创建静态站点,域名这里,有就配置域名,没有也可以直接配置服务器公网ip 也是可以的(如果是本地linux机器,配置为私有ip也是可以的)。

612c9904a82ec7ee8d08b77500bb3940.png
image-20241104234219935
  1. 进入网站配置,找到网站目录进入:

e15ba823210cbed17e8084ab1a30f870.png
image-20241104234257817
9f7552a86afde5c31bb7a618fd80718c.png
image-20241104234311612
  1. 将打包的好的前端文件夹dist里的内容,上传到网站目录中的index目录下:

5519455c9927b142ae44f44c3963bda6.png
image-20241104234439375
4b44fe32a451b3c029ba6a54f10e307f.png
image-20241104234503686
  1. 访问刚才配置的域名(域名的解析配置和ssl证书配置后续再出教程)或者ip地址,就可以访问了:

8746db2e446868b9cad8da16f4029cf3.png
image-20241104234547946

反向代理配置

通过前端部署,发现页面是可以访问了,但无法访问后端接口,会报错。这里基于ngOpenResty的反向代理功能即可。

后端接口代理

  1. 进入到网站管理中的 反向代理配置:

d1570820837700bc75dc8b351c57c91a.png
image-20241104234815954
  1. 反向代理配置

0c1a521aa206f62d27923f9e53a86637.png
image-20241104234940140

看效果:

f3daa2e64f027748477fa7d3096480a5.png
image-20241105000013898

子路径刷新报404的问题

因为本站的前端是基于vue-router实现,首次点击菜单,会经过router处理,能正常访问页面。但刷新网页是,会报404【对比上面的效果截图,都是一样的路径】。

277aa2f02fe036d6ce14a4586c9c80be.png
image-20241105123639996

出现这个问题的原因是,Vue Router 在前端是通过 JavaScript 处理的“单页应用”(SPA)。当你在本地启动时,开发服务器(如 Vite)会处理所有的路由请求,即使你刷新页面,它仍然会通过 JavaScript 将请求重定向到正确的 Vue 组件。而当你在 NGINX 上部署时,服务器的行为和本地开发环境不同。

NGINX 中,当你直接访问 /courses 并刷新页面时,NGINX 会尝试从服务器的物理路径中找到这个路径对应的文件或目录。因为这是一个 SPA 项目,实际上不存在 /courses 这样的物理路径,服务器就会返回 404 错误。

解决方法:

我们需要在 NGINX 配置中将所有未知的请求(非静态文件请求)都重定向到 index.html,这样 Vue Router 才能够处理这些路径。

NGINX 配置中,添加以下配置:

location / {try_files $uri $uri/ /index.html;
}

配置说明:

  • try_files $uri $uri/ /index.html;NGINX 会依次尝试用户请求的 URI、URI 作为目录路径、以及将请求转发到 index.html,以便由前端的 Vue Router 处理。

添加这行配置后,刷新页面就不会再出现 404 错误了,所有的路由请求都会交由 Vue Router 处理。

OpenResty 配置步骤:

配置后再去刷新子路径,都可以正常访问了。

ce36ab970e594ca7d6700c8b876df478.png
image-20241105123914554
84ad978b81c4c6f3c3a4f4c8eaaa9e7e.png
image-20241105124035274

完整的配置文件

静态站点的完整配置:

server {listen 80;  # 监听80端口server_name 47.92.25.139;  # 服务器域名或IP地址index index.php index.html index.htm default.php default.htm default.html;  # 指定默认首页文件# 设置代理请求的头部信息proxy_set_header Host $host;  # 原始主机头部proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 获取客户端IP地址proxy_set_header X-Forwarded-Host $server_name;  # 获取原始的主机名proxy_set_header X-Real-IP $remote_addr;  # 获取真实的客户端IP地址proxy_http_version 1.1;  # 使用HTTP/1.1版本进行代理proxy_set_header Upgrade $http_upgrade;  # 用于 WebSocket 升级请求proxy_set_header Connection "upgrade";  # 连接升级# 日志文件的设置access_log /www/sites/47.92.25.139/log/access.log;  # 访问日志路径error_log /www/sites/47.92.25.139/log/error.log;  # 错误日志路径# 加载WAF(Web应用防火墙)访问控制逻辑access_by_lua_file /www/common/waf/access.lua;  # 设置一些变量set $RulePath /www/sites/47.92.25.139/waf/rules;  # WAF规则路径set $logdir /www/sites/47.92.25.139/log;  # 日志目录set $redirect on;  # 是否启用重定向set $attackLog on;  # 是否启用攻击日志set $CCDeny off;  # 是否启用CC攻击防护set $urlWhiteAllow off;  # URL白名单set $urlBlockDeny off;  # URL黑名单set $argsDeny off;  # 请求参数禁用set $postDeny off;  # 禁用POST请求set $cookieDeny off;  # 禁用Cookieset $fileExtDeny off;  # 文件扩展名禁用set $ipBlockDeny off;  # IP黑名单set $ipWhiteAllow off;  # IP白名单# 处理Let's Encrypt的挑战请求location ^~ /.well-known/acme-challenge {allow all;  # 允许所有访问root /usr/share/nginx/html;  # 指定根目录}# 解决子路由404的问题location / {# 尝试查找请求的URI,未找到时会请求index.htmltry_files $uri $uri/ /index.html; }root /www/sites/47.92.25.139/index;  # 设置网站根目录# 包含其他配置文件,引入后端接口代理相关的配置include /www/sites/47.92.25.139/proxy/*.conf;  
}

后端接口的代理配置:

location ^~ /api {# 将请求转发到本地7000端口的服务proxy_pass http://127.0.0.1:7000;  # 设置代理请求的头部信息proxy_set_header Host $host;  # 原始主机头部proxy_set_header X-Real-IP $remote_addr;  # 真实客户端IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 包含原始的客户端IP地址proxy_set_header REMOTE-HOST $remote_addr;  # 记录远程主机地址proxy_set_header Upgrade $http_upgrade;  # 用于 WebSocket 升级请求proxy_set_header Connection "upgrade";  # 连接升级proxy_set_header X-Forwarded-Proto $scheme;  # 原始请求协议(http或https)proxy_http_version 1.1;  # 使用HTTP/1.1版本进行代理# 设置缓存相关的响应头add_header X-Cache $upstream_cache_status;  # 添加缓存状态头add_header Cache-Control no-cache;  # 禁用缓存
}

docker镜像部署

todo-待更新---

近期更新计划

近期更新计划(有需要的小伙伴,记得点赞关注哟!)

  1. vue、router、elementplus等前端框架入门教程,预计11中旬更新完成;

  2. 博客系统功能完善,实现评论系统等功能;

  3. 基于vue3+springboot3的前后端分离的博客系统已经开源啦,欢迎大家star!

“学编程,一定要系统化”——若你也是系统学习的践行者,记得点赞关注,期待与你一起 From Zero To Hero!

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

sls日志服务采集json格式日志

springboot统计的json数据 1. 配置 Logback 输出 JSON 格式日志1.1添加依赖:1.2配置 Logback 输出日志: 2. 使用 LinkedHashMap 日志数据3. 将日志推送到 SLS4. 在阿里云 SLS 中查看日志5.补充:关于 JSON 格式输出5.补充:关于 JSO…

Python | Leetcode Python题解之第538题把二叉搜索树转换为累加树

题目: 题解: class Solution:def convertBST(self, root: TreeNode) -> TreeNode:def getSuccessor(node: TreeNode) -> TreeNode:succ node.rightwhile succ.left and succ.left ! node:succ succ.leftreturn succtotal 0node rootwhile nod…

天命人开店日记之选址考察(上)

本次开店的品类是老年用品,前期与合作伙伴交流,按照新的线上与线下结合方式销售老年代步车和智能电动轮椅,线上占据70%销量,线下占据30%。线下门店可作为一个体验中心,对于本区域内的用户可以到线下门店体验&#xff0…

万字长文读懂RAG

目录 RAG的整体架构设计 一、概览 1-Overview 2-Indexing 3-Retrival 4-Generation 二、优化元素提问 5-Multi Query多查询策略 6-RAG-Fusion多查询结果融合策略 7-Decomposition问题分解策略 Answer recursively Answer individually 8-Step Back问答回退策略 9…

MySQL系列:一句SQL,MySQL是怎么工作的?

对于MySQL而言,其实分为客户端与服务端。 服务端,就是MySQL应用,当我们使用net start mysql命令启动的服务,其实就是启动了MySQL的服务端。客户端,负责发送请求到服务端并从服务端获取数据,客户端可以有多种…

【Mysql NDB Cluster 集群(CentOS 7)安装笔记一】

Mysql NDB Cluster 集群(CentOS 7)安装笔记 NDB集群核心概念 NDBCLUSTER(也称为NDB)是一个内存存储引擎,提供高可用性和数据保存功能。 NDBCLUSTER存储引擎可以配置一系列故障转移和负载平衡选项,但从集群级别的存储引擎开始是最容易的。NDB集群的NDB存储引擎包含一整套…

使用VS Code时如何切换Python版本?VS Code中如何在Python3与Python2之间自由切换?

1. 使用VS Code时如何切换Python版本?VS Code中如何在Python3与Python2之间自由切换? 2. 准备 2.1. 已添加Python2与Python3的安装目录到环境变量的Path所对应的值里 2.2. 已安装VSCode的Python插件 没安装的话,用VSCode打开Py文件就会提示让…

爱回收根关键字获取对应品牌的ID API 返回值深入解析

在数字化时代,二手商品交易市场日益繁荣,其中爱回收作为一个重要的平台,提供了一个便捷的接口,使得开发者能够通过API获取对应品牌的ID。本文将详细介绍如何使用爱回收的API,通过根关键字来获取品牌ID,并提…

给自己域名生成tls证书并在服务器进行配置

背景 自己搭建的服务器,使用https访问时会报不安全,给人一种不靠谱的赶脚,于是乎,决定使用个免费的方式来配置个证书解决这个问题 解决 首先需要有自己的公网域名,我的是某里云购买的,如何购买域名这里不聊 需要一…

java反序列化学习之CommonCollections3利用链的学习

一、前言 在前文中,我们学习了Java的类加载过程,类加载器以及Java中加载字节码的一些方法,其中介绍了TemplatesImpl,TemplatesImpl是一个可以加载字节码的类,通过调用其newTransformer()方法,即可执行这段字…

钨酸铵溶液净化除钾钠杂质

钨酸铵溶液的主要用途包括制造三氧化钨、蓝色氧化钨、偏钨酸铵及其他钨化合物,以及作为石油化工行业的添加剂‌‌ 制造其他钨化合物: 钨酸铵溶液可以用于制造三氧化钨或蓝色氧化钨,这些化合物进一步用于生产金属钨粉。金属钨粉是制造钨条、钨…

线程安全的单例模式

单列模式是校考中最常考的设计模式之一 啥是设计模式? 设计模式就好比好比向其中的“棋谱”,红方当头炮,黑方马来跳。针对红方的一些走法黑方有一些固定的套路。按照套路来走局势就不会吃亏。 软件开发中有很对常见的“问题场景‘&#xff1a…

【云岚到家】-day09-1-项目迁移6-秒杀抢购介绍

【云岚到家】-day09-1-项目迁移6-秒杀抢购介绍 1 购物车1.1 交互流程1.2 Redis数据结构1.3 表设计1.4 定时同步购物车 2 签到活动2.1 需求分析2.2 系统设计2.2.1 表设计2.2.2 接口设计2.2.3 如何计算连续签到天数2.2.4 如何获取匹配签到奖励规则2.2.5 签到代码 3 秒杀抢购介绍1…

探索LINQ在C#中的应用:从基本查询到数据联接

LINQ(语言集成查询)是微软为.NET框架开发的一种强大功能,于2007年作为C# 3.0和Visual Basic .NET 9.0的一部分引入。LINQ的诞生旨在提供一种一致且直观的方式来查询和操作数据,无论数据来源是内存中的集合、数据库还是XML文档。 …

FileLink如何帮助医疗行业实现安全且高效的跨网文件交换

在当今数字化时代,医疗行业在快速发展的同时,也面临着数据安全和信息流转效率的双重挑战。患者的健康记录、影像数据、检查报告等大量敏感信息需要在不同医院、诊所、实验室和保险公司之间高效、迅速地传递。然而,传统的邮件、传真和纸质文件…

windows工具 -- 一个定时播放音乐并延迟锁屏的bat脚本(专注模式) 每隔45分钟电脑自动锁屏

目的 由于静脉曲张比较难受, 不能长时间坐着, 需要有一个强迫休息的功能: 工作45分钟45分钟到了, 自动播放音乐, 并提示30s后进行锁屏 创建bat脚本 创建一个 .txt 文本文件, 然后修改后缀名为 .bat 右键记事本打开, 复制以下代码保存 echo off :: 等待45分钟 TIMEOUT /T 2700…

opencv_相关的问题

Debug模型下运行&#xff0c;在命令行窗口会有一些error相关的log信息。 通过调整log的等级&#xff0c;屏蔽掉INFO的log信息 #include <opencv2/core/utils/logger.hpp>cv::utils::logging::setLogLevel(cv::utils::logging::LOG_LEVEL_ERROR);

深度学习-44-大模型预训练的数据预处理及大模型的分类

文章目录 1 大模型的分类1.1 按任务类型分类1.1.1 生成式模型1.1.2 判别式模型1.1.3 混合模型1.2 按数据模态分类1.2.1 单模态模型1.2.2 多模态模型1.3 按训练方法分类1.3.1 预训练模型1.3.2 从零训练模型1.3.3 迁移学习模型1.4 按应用领域分类1.4.1 自然语言处理模型1.4.2 计算…

zabbix安装基础配置

服务器准备&#xff0c;两台服务器 创建zabbix用户组&#xff0c;新增zabbix用户&#xff0c;并将zabbix用户加入zabbix用户组&#xff0c;设置zabbix用户不允许登录系统权限 [rootlocalhost ~]# groupadd zabbix [rootlocalhost ~]# useradd -g zabbix zabbix [rootlocalhost…

点云的多尺度计算

1.计算点云多尺度特征的方法 1) K近邻,然后通过VoxelGrid进行下采样。 参考文献: Timo Hackel, J. D. W., Konrad Schindler "FAST SEMANTIC SEGMENTATION OF 3D POINT CLOUDS WITH STRONGLY VARYING DENSITY." Schindler, T. H. J. D. W. K. "Contour dete…