828 华为云征文|华为 Flexus 云服务器搭建萤火商城 2.0
《828 华为云征文|华为 Flexus 云服务器搭建萤火商城 2.0》
在 2024 年 9 月 14 日这个特别的日子,我着手利用华为 Flexus 云服务器搭建轻量级、高性能、前后端分离的电商系统萤火商城 2.0,开启了一段充满挑战与惊喜的旅程。 华为 Flexus 云服务器:强大的根基 华为 Flexus 云服务器以其卓越的性能和稳定性成为搭建电商系统的理想选择。其独特的架构能够高效地处理复杂的业务逻辑,为电商系统提供了坚实的底层支撑。 搭建过程:从无到有的蜕变 一、服务器环境初始化 - 操作系统选择与安装:登录华为 Flexus 云服务器控制台,选择 CentOS 操作系统进行安装。在安装过程中,仔细配置磁盘分区,为系统和后续应用预留足够的空间。例如,将系统盘划分为 50GB,数据盘根据电商系统的预期数据量预留 200GB 空间。- 基础软件安装:安装 JDK(Java Development Kit),确保服务器具备运行 Java 程序的环境。通过命令 yum install -y java-1.8.0-openjdk 进行安装。安装完成后,配置环境变量,在 /etc/profile 文件中添加 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk 和 export PATH= P A T H : PATH: PATH:JAVA_HOME/bin ,然后执行 source /etc/profile 使配置生效。 二、获取萤火商城 2.0 代码 - 从代码仓库克隆:在服务器上使用 Git 工具从萤火商城 2.0 的官方代码仓库克隆代码。执行命令 git clone [仓库地址] ,将代码下载到指定目录,比如 /home/ecmmerce/ 。- 代码检查与整理:克隆完成后,检查代码的完整性。查看是否所有的文件都已正确下载,没有缺失或损坏的文件。同时,整理代码结构,删除不必要的示例文件和临时文件。 三、部署后端服务 - 后端代码上传与解压:将后端代码压缩包通过 SFTP(Secure File Transfer Protocol)工具上传至服务器。在服务器上执行解压命令,如 unzip backend.zip -d /home/ecmmerce/backend 。- 配置文件调整:打开后端服务的配置文件,通常是一个 application.properties 或者 application.yml 文件。在文件中配置数据库连接信息,将数据库的 IP 地址、端口、用户名、密码等信息正确填写。例如: plaintext
复制
spring.datasource.url=jdbc:mysql://[数据库 IP]:3306/ecmmerce?useSSL=false&serverTimezone=UTCspring.datasource.username=[数据库用户名]spring.datasource.password=[数据库密码] - 依赖安装与服务启动:进入后端代码目录,执行 mvn install 命令安装项目依赖。依赖安装完成后,通过 java -jar [后端服务 jar 包名称] 命令启动后端服务。启动后,查看服务日志,确保没有错误信息,服务正常启动并监听在指定端口,比如 8080 端口。 四、构建前端界面 - 前端代码编译:在前端代码目录下执行 npm install 命令安装前端依赖包。依赖安装完成后,执行 npm run build 命令进行代码编译和打包。编译过程中,注意查看是否有编译错误,如果有则根据错误提示进行修改。- 接口对接与优化:在前端代码中配置与后端服务的接口地址。例如,在 config.js 文件中设置 axios.defaults.baseURL = ‘http://[服务器 IP]:8080/api’ 。同时,对前端界面的加载性能进行优化,减少不必要的网络请求和图片资源大小。使用图片压缩工具对图片进行压缩,将大图片转换为 webp 格式以减少加载时间。- 前端服务部署:将编译好的前端静态文件部署到服务器上。可以使用 Nginx 作为静态资源服务器。安装 Nginx 后,在 /etc/nginx/conf.d/ 目录下创建一个配置文件,如 ecmmerce.conf ,内容如下: plaintext
复制
server { listen 80; server_name [服务器 IP]; location / { root /home/ecmmerce/frontend/dist; index index.html; }} 然后执行 nginx -s reload 命令重新加载 Nginx 配置。 配置优化过程:精益求精的雕琢 一、数据库优化 - 索引优化:分析电商系统中频繁查询的数据库表,如商品表、订单表等。为这些表的关键字段添加索引,例如在商品表的商品名称字段添加索引 CREATE INDEX idx_product_name ON product (product_name) 。添加索引后,通过 EXPLAIN 命令分析查询语句的执行计划,查看索引是否被正确使用。- 查询语句优化:检查后端服务中的数据库查询语句,避免使用复杂的嵌套查询和全表扫描。对于关联查询,确保关联字段都有索引。例如,将原来的复杂关联查询进行简化,通过合理的表设计和索引优化,提高查询效率。 二、服务器性能优化 - JVM 参数调整:根据服务器的硬件配置和电商系统的负载情况,调整 JVM(Java Virtual Machine)参数。在启动后端服务的命令中添加 -Xms2g -Xmx4g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m ,分别设置堆内存的初始大小、最大大小以及元空间的大小。- 缓存机制引入:在后端服务中引入缓存机制,如使用 Redis 缓存热门商品信息和常用的配置信息。安装 Redis 后,在后端服务中集成 Redis 客户端,通过代码实现缓存的读写操作。例如,在获取商品信息的方法中,先从 Redis 中查询,如果不存在再从数据库中查询,并将查询结果存入 Redis 中,减少数据库的访问压力。 三、安全优化 - 防火墙配置:利用服务器的防火墙规则,限制对电商系统的访问来源。只允许特定的 IP 段或者合法的用户 IP 访问服务器的相关端口。例如,通过 firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port protocol=“tcp” port=“80” accept’ 命令允许 192.168.1.0/24 网段访问服务器的 80 端口。- 数据加密传输:在前端与后端服务之间的通信以及用户登录等环节,采用加密传输协议,如 HTTPS。通过配置证书和在 Nginx 中开启 HTTPS 支持,确保数据在传输过程中的安全性。 电商之光:萤火商城 2.0 上线 经过细致的搭建与优化,萤火商城 2.0 成功在华为 Flexus 云服务器上线。它以其轻量级、高性能的特点,为用户带来流畅的购物体验,为电商业务的发展奠定了坚实的基础。在未来的运营中,将持续关注系统性能,不断优化与改进,让这盏电商之灯更加璀璨。
相关文章:
828 华为云征文|华为 Flexus 云服务器搭建萤火商城 2.0
《828 华为云征文|华为 Flexus 云服务器搭建萤火商城 2.0》 在 2024 年 9 月 14 日这个特别的日子,我着手利用华为 Flexus 云服务器搭建轻量级、高性能、前后端分离的电商系统萤火商城 2.0,开启了一段充满挑战与惊喜的旅程。 华为 Flexus 云服…...
centos7安装MySQL5.7.44
下载压缩文件 命令: #放到在/usr/local目录下 cd /usr/local #上传命令选择安装包 rz #解压缩包 tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz #给包重命名为mysql mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql #查看mysql目录下有什么东西 [rootlocal…...
HTTP 请求处理的完整流程到Servlet流程图
HTTP 请求处理的完整流程。从 TCP 三次握手开始,一直到 Servlet 处理请求并返回响应。 首先,让我解释一下 response.setContentType("text/html;charsetUTF-8"); 这行代码: 这行代码设置了 HTTP 响应的 Content-Type 头。它告诉浏…...
spingboot中创建简单的WebSocket服务和使用OKHttp创建socket客户端接收数据
背景 springboot 中使用okhttp3创建webSocket服务端 server1 和客户端 client1,客户端clinet1调用server1用于发送图片,创建客户端client2接收此图片. 在Spring Boot中使用OkHttp3创建WebSocket服务端和客户端,涉及到两个不同的操作ÿ…...
Redis入门2
在java中操作Redis Redis的Java客户端 Redis 的 Java 客户端很多,常用的几种: Jedis Lettuce Spring Data Redis Spring Data Redis 是 Spring 的一部分,对 Redis 底层开发包进行了高度封装。 在 Spring 项目中,可以使用Spring Data R…...
嵌入式Linux:信号是什么?
目录 1、信号的来源 2、信号的处理方式 3、信号的异步性 4、信号编号 信号是Linux系统中用于通知进程事件发生的一种机制,可以将其视为一种软件中断。信号类似于硬件中断,能够打断进程当前的执行流程,从而实现对中断机制的一种软件层面的…...
教你搭建一个wifi贴系统
大家好,我是鲸天科技千千,大家都知道我是做小程序开发的,平时会给大家分享一些互联网相关的创业项目,感兴趣的可以跟我关注一下。 搭建一个首先就是要搭建一个自己的wifi贴小程序,我们自己的工作就是把这个小程序推广…...
C#中的LINQ语句
LINQ(Language Integrated Query)是 .NET Framework 中的一个功能强大的查询语言,它允许开发者使用类似 SQL 的语法来查询和操作数据。在 C# 中,LINQ 可以用于查询数组、列表、集合、XML 文档、关系数据库等。以下是一些常见的 LI…...
【C++】——string(模拟实现)
文章目录 string类构造string类拷贝构造string类析构string类运算符重载string类部分常用接口的模拟实现 这篇博客中构造、拷贝构造、析构、还有一些短小频繁调用的函数就不用做函数和定义分离,因为在类中,这种函数会默认是内联函数 string类构造 构造函…...
c++20 std::format 格式化说明
在标头<format>定义 ()功能很强大,它把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’。 1、基本用法 (1)不带编号,即“{}”(2)带…...
HTB-Unified(log4j2漏洞、MongoDb替换管理员密码)
前言 各位师傅大家好,我是qmx_07,今天给大家讲解Unified靶机 渗透过程 信息搜集 服务器开放了SSH服务,HTTP服务 访问网站 验证log4j2漏洞 8443端口:UniFi 网络 ,访问查询 是否有Nday漏洞利用 可以观察到UniFi的版…...
每天五分钟深度学习PyTorch:不同的神经网络层设置不同的学习率
本文重点 我们前面学习了基本网络模型的搭建,获取网络模型的子结构,以及优化器optim,我们发现我们设置优化器的时候,是对整个模型设置的,也就是说整个模型的参数学习率是一样,本节课程我们学习如何给不同的网络层设置不同的学习率。主要还是通过优化器optim来实现的,本…...
【渗透测试】——DVWA靶场搭建
📖 前言:DVWA(Damn Vulnerable Web Application)是一个用于安全漏洞测试的 PHP/MySQL 网络应用,旨在为安全专业人士提供一个合法的环境,以测试他们的技能和工具,同时帮助 Web 开发者更好地理解 …...
国内人工智能产业发展现状及对策研究
一、引言 人工智能作为新时代科技革命和产业变革的核心力量,正深刻改变着全球经济格局。我国政府高度重视人工智能产业发展,将其列为国家战略性新兴产业。在此背景下,本文旨在分析我国人工智能产业发展现状,探讨面临的挑战&#x…...
完整版订单超时自动取消功能
前几天对实习还是继续学习技术产生了抉择,问了一个前辈,他抛给我一个问题,怎么做15分钟订单自动取消,我说然后到时间之后,自动执行这个订单关闭业务,比如把锁了的库存给解开等等操作,然后在数据…...
算法刷题:300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组、1143. 最长公共子序列
300. 最长递增子序列 1.dp定义:dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度 2.递推公式:if (nums[i] > nums[j]) dp[i] max(dp[i], dp[j] 1); 注意这里不是要dp[i] 与 dp[j] 1进行比较,而是我们要取dp[j] 1的最大值…...
go 笔记
数据结构与 方法(增删改查) 安装goland,注意版本是2024.1.1,不是2024.2.1,软件下载地址也在链接中提供了 ‘go’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 在 Windows 搜索栏中输入“环境变量”&#…...
路由等保测评
1.身份鉴别 应对登录的用户进行身份标识和鉴别, 身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。 可以使用“ service password-encryption"命令对存储在配置文件中的所有口令和类似数据进行加密, 以避免攻击者通过读取配…...
C# 反射之动态生成dll/exe
这个可能应该属于反射的高级使用范围了,平常在项目中使用的人估计也不是很多。由于使用反射的话会降低性能,比如之前用到的GetValue、SetValue等之类,但是使用这种方式会大大提高效率,在这里我只想说,都直接写IL指令了…...
Rust 所有权 Slices
文章目录 发现宝藏1. Slice 的基础知识1.1 什么是 Slice?1.2 如何创建 Slice? 2. 处理字符串 Slice2.1 字符串的 Slice2.2 字符串的 Unicode 和切片 3. 在函数中使用 Slice3.1 传递 Slice 给函数3.2 可变 Slice 的函数 4. 复杂示例4.1 处理多维数组的 Sl…...
seo快速优化软件使用教程_seo快速优化软件有哪些特点
SEO快速优化软件使用教程:SEO快速优化软件有哪些特点 在当今数字化时代,SEO(搜索引擎优化)已成为网站提升流量、提高曝光度的关键手段。而在SEO领域,使用SEO快速优化软件可以大大提高效率,让你在短时间内看…...
计算机网络核心知识点笔记
计算机网络核心知识点笔记 一、TCP/IP五层模型详解 1. 核心思想 数据在发送端从应用层逐层向下封装(添加头部),接收端从物理层逐层向上解包(剥去头部),最终还原数据供应用程序处理。 2. 五层结构与核心内容…...
STC8H8K32U工控板 电机正反转
本文摘要: 该代码实现了一个基于STC8H单片机的自动化控制系统,主要功能包括: 通过I2C接口驱动OLED显示屏,显示"气缸前进/后退"、"电机前进/停止"等状态信息 控制4路气缸(前/后气缸的进/退)和…...
骨干网为什么偏爱IS-IS?从报文结构到PRC算法详解运营商级路由协议设计
骨干网为何青睐IS-IS?从协议设计到现网实践的深度解析 在互联网基础设施的底层,运营商骨干网如同数字时代的高速公路系统,承载着全球90%以上的跨域流量。而这条"信息高速公路"的交通指挥系统,则高度依赖IS-IS࿰…...
PS软件自动化:利用SenseVoice-Small语音指令批量处理图片
PS软件自动化:利用SenseVoice-Small语音指令批量处理图片 你是不是也厌倦了在Photoshop里一遍又一遍地重复那些机械性的操作?给几十张图片统一调整尺寸、批量添加水印、或者对一组照片执行同样的滤镜效果。这些工作既枯燥又耗时,还容易因为手…...
java凉了?985硕士都在偷偷学的大模型
Java就算了吧,太卷了,尤其现在大环境下,更卷了。连外包要求本科了,还要求经验,经验再多又不行了,因为触碰35红线了。。。 加上现在低代码平台正在吃掉CRUD基础岗,也就是说Java的话你一毕业就很难…...
从Polling到DAQ:在ASAP2 Studio里提前配置XCP测量通道,提升CANape数据采集效率
从Polling到DAQ:在ASAP2 Studio里提前配置XCP测量通道,提升CANape数据采集效率 在汽车电控测试领域,数据采集的效率和精度直接影响着开发周期和标定质量。传统轮询方式(Polling)虽然简单易用,但面对现代ECU…...
不止是安装:在openEuler 22.03 LTS SP4上快速搭一个可用的开发/测试环境
从裸机到生产力:openEuler 22.03 LTS SP4半小时高效开发环境搭建指南 刚装完openEuler系统,看着空荡荡的终端界面,是不是有种"接下来该干嘛"的迷茫?作为开发者,我们需要的不是一个干净的操作系统,…...
OpenClaw沙盒方案:千问3.5-35B-A3B-FP8云端测试环境搭建
OpenClaw沙盒方案:千问3.5-35B-A3B-FP8云端测试环境搭建 1. 为什么需要沙盒测试环境 上周我在尝试将OpenClaw接入本地部署的千问模型时,遇到了一个典型问题:模型推理占用了大量显存,导致我的开发机几乎无法进行其他操作。更糟的…...
保姆级教程:在Ubuntu 20.04上用Gazebo 11从户型图到仿真世界(附避坑指南)
从户型图到高保真Gazebo仿真环境:零基础室内建模实战指南 刚拿到户型图时,你可能觉得在Gazebo里重建整个房屋是项艰巨任务——毕竟不是每个机器人开发者都精通3D建模。但事实上,用Gazebo 11的建筑编辑器,配合一张清晰的户型图照片…...
