SpringBoot开发的AI导航站技术架构剖析 —— 技术如何选型 - 第520篇

历史文章(文章累计520+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

《国内最全的Spring Boot系列之七》

idea springboot woff/woff2/eot/ttf/svg等小图标不显示的问题 - 第515篇

Noisee AI中文站网页版 AI 音乐生成视频全新登场,快来抢先体验——国内第一个登场的中文站来袭  - 516篇

Spring的SmartLifecycle可以没用过,但没听过就不好了!- 第517篇

SpringBoot异常处理机制之自定义404、500错误提示页面 - 518篇

SpringBoot 中多例模式的神秘世界:用法区别以及应用场景,最后的灵魂拷问会吗?- 第519篇

导读

在前面的几篇文章提到了AI导航站,想必有些小伙伴会很好奇,现在不都前后端分离了吗?为什么博主你前端的代码还和后端放在一起呐?

这个问题就是一个技术选型的问题?本篇文章想和小伙伴们谈谈技术选型的问题 —— 观点仅代表个人意见,仅供参考!

项目地址:http://ai.dzwlai.com/

AI导航站,汇总800+工具集合:

缘起

一直有个梦 —— 拥有自己的一个导航站,刚好最近一直在研究AI相关的知识,所以就想那就从AI导航站开始吧 —— 梦该醒了。

AI导航站的思考

技术在落地之前,还是需要一定的可行性的思考的,对于AI导航站的落地实现方式有两种:

(1)纯静态前端代码:这种方式是不需要后端的,只要会前端代码编写就可以,维护的时候只需要修改前端的代码或者配置文件即可。好处就是实现简单,不会后端也可以搞定;弊端就是没有后台维护起来会比较费劲。

(2)后端+前端代码:这种方式是需要后端的,导航站的信息数据都在后端进行管理和返回,前端只做页面的渲染。弊端就是实现难度会增加,好处就是维护可以通过后台进行维护。

对于想要自己的一个导航站的小伙伴,需要根据自己的实际情况进行实现。没有服务器预算的,如果是纯前端代码可以把代码放在一些平台上即可完成部署。

我这里使用的是后端+前端的实现方式。使用这种方式主要是基于以下进行思考:

(1)本身有现成的服务器在运行《AI写歌》的项目,关注公众号《SpringBoot》进行体验。

(2)希望自己可以通过后台进行维护,而不是每次维护都要修改代码,然后重新部署。—— O(∩_∩)O哈哈~ 我比较懒~

(3)我希望我开发的不仅仅是AI导航站,而是一个通用的导航站,可以根据不同的域名,展示不同的导航站。

AI导航站的技术架构

当对整体技术架构进行了规划,那么技术架构就可以慢慢落地了,当然在具体架构之前,还有一个点要思考,那就是要不要前后端分离:

(1)前后端分离:这种架构的好处,就是后端只需要提供接口,不需要懂前端的技术,另外就是一旦展示方式或者要多个前端网站,后端接口都不需要动。—— 前端只管前端,后端提供接口。

(2)前后端不分离:这种架构前端的代码逻辑和后端架构混合在一起,好处 就是开发效率,自己写接口,自己调用开发效率高;其次就是性能:由于前后端紧密结合,对于一些性能关键的场景,可以更方便地进行整体的优化。

总的来说:不管是使用哪种方式都是可以的,这个要根据实际情况进行选择。

我这里选择的是前后端不分离,主要是基于以下进行思考:

(1)对于vue框架不是很熟悉,对于html+js+css还是比较熟悉的;

(2)对于vue的单体应用不知道怎么进行SEO优化,对于html页面还是知道的;

(3)对于Spring MVC这种开发模式很熟悉;

(4)只有一个人开发,没有专业的前端配合。

到这里就可以确定技术架构了:

SpringBoot + MyBatis-Plus + MySQL + Thymeleaf

(1)SpringBoot:作为整个框架的核心,没的说。

(2)MyBatis-Plus:使用mybatis-plus进行数据库的操作,当然使用spring data jpa也是可以的。

(3)MySQL:使用MySQL进行数据的存储。

(4)Thymeleaf:使用Thymeleaf模板进行数据的渲染,当然这里你可以使用自己熟悉的模板引擎,比如:velocity、freemarker。我选择Thyemeleaf的音乐,是因为Thyemeleaf的模板文件还是html文件,不会破坏html结构。

对于表信息:导航中重要的两个核心信息是导航菜单以及对应的工具:NavMenu和NavTool,以下只提供关键字段:

(1)NavMenu:id(主键)、name(菜单名称)、icon(图标)、pid(父菜单)、type(类型,左边导航还是顶部导航)…

(2)NavTool:id(主键)、name(工具名称)、logo(logo)、menuId(菜单id)、url(链接地址)、description(描述)….

技术架构选型综合考虑点

(1)业务需求:

l 明确业务的功能和特性要求,例如是侧重数据处理、实时交互还是高并发访问。

l 考虑业务的未来发展和扩展性,能否支持业务规模的增长和功能的扩展。

n 比如一个电商平台,初期可能流量不大,但要考虑到促销活动时的高并发情况,以及未来增加新的业务模块如直播带货的可能性。

(2)性能要求:

l 评估系统的响应时间、吞吐量、资源利用率等性能指标的要求。

l 确定是否需要支持大规模数据处理和高速数据传输。

n 像金融交易系统,对响应时间要求极高,毫秒级的延迟都可能造成巨大损失。

(3)技术成熟度:

l 选择成熟稳定的技术,降低技术风险。

l 考察技术的社区支持和文档完善程度。

n 例如,Java 作为一种成熟的编程语言,拥有丰富的文档和强大的社区支持。

(4)开发效率:

l 考虑所选技术是否能提高开发人员的效率,减少开发时间和成本。

l 评估技术的学习曲线,是否易于团队成员掌握。

n 采用一些流行的开发框架,如 Spring Boot,可以提高开发效率。

(5)可维护性:

l 思考技术架构是否易于维护和故障排查。

l 代码的可读性和可扩展性如何。

n 良好的代码结构和模块化设计有助于后期的维护工作。

(6)安全性:

l 确保所选技术能够提供足够的安全保障,防止数据泄露和恶意攻击。

l 评估技术在身份验证、授权和加密方面的能力。

n 对于涉及用户隐私数据的系统,安全性至关重要。

(7)成本:

l 包括技术的许可费用、硬件成本、运维成本等。

l 考虑开源技术和商业技术的成本差异。

n 某些商业数据库软件可能需要高昂的授权费用,而开源数据库则可以节省成本。

(8)技术团队的技能水平:

l 结合团队成员现有的技术能力和经验,选择他们熟悉或能够快速上手的技术。

l 考虑是否需要为新技术进行培训和学习。

n 如果团队主要熟悉 Python 开发,那么选择基于 Python 的技术栈可能更合适。

(9)兼容性:

l 与现有系统和技术的兼容性,能否顺利集成。

l 考虑不同技术组件之间的兼容性。

n 新引入的数据库是否能与现有的应用服务器兼容。

(10)技术生态:

l 考察技术周边的工具和资源是否丰富,如测试工具、监控工具等。

l 第三方库和插件的可用性。

n 例如,JavaScript 拥有丰富的第三方库,可以满足各种功能需求。

总结

AI导航站整体的一个架构和开发还是不复杂的,博主在这里也这是把自己的一个思考过程和大家进行分享,在碰到技术的选型的时候要根据自身和团队的实际情况进行灵活的调整。

总之,技术架构选型是一个综合性的决策过程,需要全面权衡各种因素,以确保选择的技术架构能够满足业务需求,并为系统的长期稳定运行和发展提供有力支持。

历史文章(文章累计520+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

《国内最全的Spring Boot系列之七》

ES 深度分页问题及针对不同需求下的解决方案[ES系列] - 第509篇

抖音主播/电商人员有福了,利用Suno创作产品宣传,让产品动起来-小米Su7 - 第510篇

Spring Boot整合ElasticSearch实战 - 第511篇

Transaction rolled back because it has been marked as - 第512篇

五音不全也浪漫,521清华学霸为爱人写歌 - 第513篇

一文讲清楚SpringBoot项目打包jar后运行报错template might not exist - 第514篇

idea springboot woff/woff2/eot/ttf/svg等小图标不显示的问题 - 第515篇

Noisee AI中文站网页版 AI 音乐生成视频全新登场,快来抢先体验——国内第一个登场的中文站来袭  - 516篇

Spring的SmartLifecycle可以没用过,但没听过就不好了!- 第517篇

SpringBoot异常处理机制之自定义404、500错误提示页面 - 518篇

SpringBoot 中多例模式的神秘世界:用法区别以及应用场景,最后的灵魂拷问会吗?- 第519篇

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙模拟器(HarmonyOS Emulator)Beta申请审核流程

文 | Promise Sun 一.背景: 鸿蒙项目开发需要使用模拟器进行开发测试,但目前想在DevEco Studio开发工具中使用模拟器就必须到华为官网进行报名申请,参加“鸿蒙模拟器(HarmonyOS Emulator)Beta活动申请”。 申请审核通…

Hi3861 OpenHarmony嵌入式应用入门--华为 IoTDA 设备接入

华为云物联网平台(IoT 设备接入云服务)提供海量设备的接入和管理能力,可以将自己的 IoT 设备 联接到华为云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云物联网平台的服 务实现设备与设备之间的控…

微信小程序---npm 支持

一、构建 npm 目前小程序已经支持使用 npm 安装第三方包,但是这些 npm 包在小程序中不能够直接使用,必须得使用小程序开发者工具进行构建后才可以使用。 为什么得使用小程序开发者工具需要构建呢❓ 因为 node_modules 目录下的包,不会参与…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(十一)-无人机服务可用性用例需求

引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…

Study--Oracle-07-ASM自动存储管理(二)

一、ASM安装准备条件 1、ASM支持存储类型 本地祼设备(本地的磁盘和分区) 网络附加存储(NAS) 存储区域网络(SAN) 2、ASM使用本地裸设备,要点: 已经被挂载到操作系统上或者已经做了分区 映射裸设备为文件名 设置正确的权限(针对grid用户和asmadmin组,权限为660) 二、OR…

快速排序及归并排序的实现与排序的稳定性

目录 快速排序 一. 快速排序递归的实现方法 1. 左右指针法 步骤思路 为什么要让end先走? 2. 挖坑法 步骤思路 3. 前后指针法 步骤思路 二. 快速排序的时间和空间复杂度 1. 时间复杂度 2. 空间复杂度 三. 快速排序的优化方法 1. 三数取中优化 2. 小区…

贪心算法(2024/7/16)

1合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入:inter…

每日练习,不要放弃

目录 题目1.下面叙述错误的是 ( )2.java如何返回request范围内存在的对象?3.以下代码将打印出4.下列类定义中哪些是合法的抽象类的定义?()5.以下代码段执行后的输出结果为6.以下代码运行输出的是总结 题目 选自牛客网 1.下面叙述…

成为git砖家(1): author 和 committer 的区别

大家好,我是白鱼。一直对 git author 和 committer 不太了解, 今天通过 cherry-pick 的例子搞清楚了区别。 原理 例如我克隆了著名开源项目 spdlog 的源码, 根据某个历史 commit A 创建了分支, 然后 cherry-pick 了这个 commit …

DPU:值不值得托付下一代存储加速架构?

一、为什么需要DPU? 在信息爆炸的时代,数据处理单元(DPU)作为新兴的数据中心基础设施核心,正逐步崭露头角,成为提升数据处理效率、优化成本结构的关键角色。 传统的数据中心架构主要以CPU为中心&#xff…

【C#】已知有三个坐标点:P0、P1、P2,当满足P3和P4连成的一条直线 与 P0和P1连成一条直线平行且长度一致,该如何计算P3、P4?

问题描述 已知有三个坐标点:P0、P1、P2,当满足P3和P4连成的一条直线 与 P0和P1连成一条直线平行且长度一致,该如何计算P3、P4? 解决办法 思路一:斜率及点斜式方程 # 示例坐标 x0, y0 1, 1 # P0坐标 x1, y1 4, 4 # …

pytorch中一些最基本函数和类

1.Tensor操作 Tensor是PyTorch中最基本的数据结构,类似于NumPy的数组,但可以在GPU上运行加速计算。 示例:创建和操作Tensor import torch# 创建一个零填充的Tensor x torch.zeros(3, 3) print(x)# 加法操作 y torch.ones(3, 3) z x y pr…

SEO:6个避免被搜索引擎惩罚的策略-华媒舍

在当今数字时代,搜索引擎成为了绝大多数人获取信息和产品的首选工具。为了在搜索结果中获得良好的排名,许多网站采用了各种优化策略。有些策略可能会适得其反,引发搜索引擎的惩罚。以下是彭博社发稿推广的6个避免被搜索引擎惩罚的策略。 1. 内…

链接追踪系列-07.logstash安装json_lines插件

进入docker中的logstash 容器内: jelexbogon ~ % docker exec -it 7ee8960c99a31e607f346b2802419b8b819cc860863bc283cb7483bc03ba1420 /bin/sh $ pwd /usr/share/logstash $ ls bin CONTRIBUTORS Gemfile jdk logstash-core modules tools x-pack …

本地部署 EVE: Unveiling Encoder-Free Vision-Language Models

本地部署 EVE: Unveiling Encoder-Free Vision-Language Models 0. 引言1. 快速开始2. 运行 Demo 0. 引言 EVE (Encoder-free Vision-language model) 是一种创新的多模态 AI 模型,主要特点是去除了传统视觉语言模型中的视觉编码器。 核心创新 架构创新&#xff…

【python虚拟环境管理】【mac m3】 使用pipx安装poetry

文章目录 一. 安装 pipx二. 安装Poetry1. 安装2. advanced 操作 官网文档:https://python-poetry.org/docs/ pipx介绍文档:https://blog.51cto.com/u_15064632/2570626 一. 安装 pipx pipx 用于全局安装 Python 命令行应用程序,同时在虚拟环…

[ACM独立出版] 2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024,8月2日-4)

2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024)将于2024年8月2-4日在中国厦门召开。 VRISP 2024将围绕“虚拟现实、图像和信号处理”的最新研究领域,为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供…

二次开发源码 借贷系统uniapp/借贷认证系统/小额信贷系统/工薪贷APP/资金贷系统h5

前端:UNIAPP 后端:ThinkPHP 数据库: Mysql 前端使用的uniapp 可以打包APP H5 小程序 系统提供了完善的网络借贷体系,为金融中介平台提供从获客到贷后管理全流程服务,解决了借贷手续繁琐、流程缓慢等问题 此源码为运营…

解决一下git clone失败的问题

1).不开梯子,我们用https克隆 git clone https://github.com 报错: Failed to connect to github.com port 443 after 2091 ms: Couldnt connect to server 解决办法: 开梯子,然后# 注意修改成自己的IP和端口号 gi…

el-table的selection多选表格改为单选

需求场景: 选择表格数据时&#xff0c;需要控制单条数据的操作按钮是否禁用。 效果图: html代码: <div><el-tableref"multipleTable":data"tableData"tooltip-effect"dark"style"width: 100%"selection-change"handl…