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

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服务端和客户端,涉及到两个不同的操作&#xff…...

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>定义 ()功能很强大&#xff0c;它把字符串当成一个模板&#xff0c;通过传入的参数进行格式化&#xff0c;并且使用大括号‘{}’作为特殊字符代替‘%’。 1、基本用法 &#xff08;1&#xff09;不带编号&#xff0c;即“{}”&#xff08;2&#xff09;带…...

HTB-Unified(log4j2漏洞、MongoDb替换管理员密码)

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解Unified靶机 渗透过程 信息搜集 服务器开放了SSH服务&#xff0c;HTTP服务 访问网站 验证log4j2漏洞 8443端口&#xff1a;UniFi 网络 &#xff0c;访问查询 是否有Nday漏洞利用 可以观察到UniFi的版…...

每天五分钟深度学习PyTorch:不同的神经网络层设置不同的学习率

本文重点 我们前面学习了基本网络模型的搭建,获取网络模型的子结构,以及优化器optim,我们发现我们设置优化器的时候,是对整个模型设置的,也就是说整个模型的参数学习率是一样,本节课程我们学习如何给不同的网络层设置不同的学习率。主要还是通过优化器optim来实现的,本…...

【渗透测试】——DVWA靶场搭建

&#x1f4d6; 前言&#xff1a;DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是一个用于安全漏洞测试的 PHP/MySQL 网络应用&#xff0c;旨在为安全专业人士提供一个合法的环境&#xff0c;以测试他们的技能和工具&#xff0c;同时帮助 Web 开发者更好地理解 …...

国内人工智能产业发展现状及对策研究

一、引言 人工智能作为新时代科技革命和产业变革的核心力量&#xff0c;正深刻改变着全球经济格局。我国政府高度重视人工智能产业发展&#xff0c;将其列为国家战略性新兴产业。在此背景下&#xff0c;本文旨在分析我国人工智能产业发展现状&#xff0c;探讨面临的挑战&#x…...

完整版订单超时自动取消功能

前几天对实习还是继续学习技术产生了抉择&#xff0c;问了一个前辈&#xff0c;他抛给我一个问题&#xff0c;怎么做15分钟订单自动取消&#xff0c;我说然后到时间之后&#xff0c;自动执行这个订单关闭业务&#xff0c;比如把锁了的库存给解开等等操作&#xff0c;然后在数据…...

算法刷题:300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组、1143. 最长公共子序列

300. 最长递增子序列 1.dp定义&#xff1a;dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度 2.递推公式&#xff1a;if (nums[i] > nums[j]) dp[i] max(dp[i], dp[j] 1); 注意这里不是要dp[i] 与 dp[j] 1进行比较&#xff0c;而是我们要取dp[j] 1的最大值…...

go 笔记

数据结构与 方法&#xff08;增删改查&#xff09; 安装goland,注意版本是2024.1.1&#xff0c;不是2024.2.1&#xff0c;软件下载地址也在链接中提供了 ‘go’ 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 在 Windows 搜索栏中输入“环境变量”&#…...

路由等保测评

1.身份鉴别 应对登录的用户进行身份标识和鉴别&#xff0c; 身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换。 可以使用“ service password-encryption"命令对存储在配置文件中的所有口令和类似数据进行加密&#xff0c; 以避免攻击者通过读取配…...

C# 反射之动态生成dll/exe

这个可能应该属于反射的高级使用范围了&#xff0c;平常在项目中使用的人估计也不是很多。由于使用反射的话会降低性能&#xff0c;比如之前用到的GetValue、SetValue等之类&#xff0c;但是使用这种方式会大大提高效率&#xff0c;在这里我只想说&#xff0c;都直接写IL指令了…...

Rust 所有权 Slices

文章目录 发现宝藏1. Slice 的基础知识1.1 什么是 Slice&#xff1f;1.2 如何创建 Slice&#xff1f; 2. 处理字符串 Slice2.1 字符串的 Slice2.2 字符串的 Unicode 和切片 3. 在函数中使用 Slice3.1 传递 Slice 给函数3.2 可变 Slice 的函数 4. 复杂示例4.1 处理多维数组的 Sl…...

windows 安全与网络管理问题

问题&#xff1a;当编写的脚本或程序运行的时候&#xff0c;可能被windows阻止访问网络甚至被删除 避免被删除 wini 进入设置界面 -> 选择更新与安全 -> 选择windwos defender -> 点击添加排除项&#xff0c;将指定的文件或目录排除&#xff0c;避免被软件删除 允许…...

基于Python实现一个庆祝国庆节的小程序

功能&#xff1a; 添加互动功能&#xff1a;允许用户选择不同的祝福语或者查询不同的国庆节信息。动态背景音乐&#xff1a;播放国庆节相关的背景音乐。增加节日小测验&#xff1a;提供一些关于国庆节的趣味小测验&#xff0c;让用户参与。增强图形用户界面 (GUI)&#xff1a;…...

Anaconda 安装与使用教程

Anaconda 安装与使用教程 介绍 Anaconda 是一个用于科学计算的 Python 和 R 的发行版&#xff0c;它包含了众多流行的科学计算、数据分析、机器学习等领域的库。本教程旨在帮助初学者快速上手 Anaconda&#xff0c;并学会如何使用其管理环境以及安装包。 第一步&#xff1a;…...

时序预测SARIMAX模型

1. 项目背景 本文基于kaggle平台相关竞赛项目&#xff0c;具体连接如下&#xff1a; Time Series Forecasting With SARIMAX 基本信息如内容说明、数据集、已提交代码、当前得分排名以及比赛规则等&#xff0c;如图【1】所示&#xff0c;可以认真阅读。 图 1 2. 数据读取 …...

gin集成jaeger中间件实现链路追踪

1. 背景 新业务线带来新项目启动&#xff0c;需要改进原有项目的基础框架和组件能力&#xff0c;以提升后续开发和维护效率。项目搭建主要包括技术选型、框架搭建、基础服务搭建等。这其中就涉及到链路追踪的内容&#xff0c;结合其中的踩坑情况&#xff0c;用一篇文章来说明完…...

前端层面----监控与埋点

前言&#xff1a; 站在产品的视角&#xff0c;经常会问如下几个问题&#xff1a; 产品有没有用户使用 用户用得怎么样 系统会不会经常出现异常 如何更好地满足用户需求服务用户 当站在技术视角时&#xff0c;经常会问如下几个问题&#xff1a; 系统出现异常的频率如何 异常…...

linux Command

linux Command 1. 系统监控命令 1.1 top top [param] top -H -p pid&#xff0c;查看进程pid下面的子线程。-b以处理模式操作-c显示完整的命令行而不只是显示命令名。-d 屏幕刷新间隔时间。-l 忽略失效过程。-s 保密模式。-S 累积模式。-u 【用户名】 指定用户名。-p 【进程…...

uniapp登录页面( 适配:pc、小程序、h5)

<!-- 简洁登录页面 --> <template><view class"login-bg"><image class"img-a" src"https://zhoukaiwen.com/img/loginImg/2.png"></image><image class"img-b" src"https://zhoukaiwen.com/im…...

关于OceanBase 多模一体化的浅析

在当今多元化的业务生态中&#xff0c;各行各业对数据库系统的需求各有侧重。举例来说&#xff0c;金融风控领域对数据库的高效事务处理&#xff08;TP&#xff09;和分析处理&#xff08;AP&#xff09;能力有着严格要求&#xff1b;游戏行业则更加注重文档数据库的灵活性和性…...

快速git

下载 sudo apt install git配置 $ git config --global user.name "John Doe" $ git config --global user.email johndoeexample.com没有空格可以不加双引号如果~/.ssh没有先创建&#xff08;下一步用&#xff09; ssh方式制作密钥 github解释 #以邮箱作为标签…...