电商系统商品详情性能优化方案

一、存在问题:

1.整个商品详情页直接对数据库操作,没有使用缓存;

2.商品详情页取sql字段和查询内容比较多都写一个方法里;

3.获取详情页sku取数据,单条取是否可以拆分通过attr_id取对应的规则

二、优化方案:

商品详情页优化

商品详情页流程图

一目前的问题是什么

1.整个商品详情页直接对数据库操作,没有使用缓存;

2.商品详情页取sql字段和查询内容比较多都写一个方法里;

3.获取详情页sku取数据,单条取是否可以拆分通过attr_id取对应的规则

二.如何解决这些问题

详情页架构设计原则

1、数据闭环   :数据闭环即数据的自我管理,或者说是数据都在自己系统里维护,不依赖于任何其他系统.

2、数据维度化 :对于数据应该按照维度和作用进行维度化,这样可以分离存储,进行更有效的存储和使用.

3、异步化+并发化

使用了消息异步化进行系统解耦合,通过消息通知我变更,然后我再调用相应接口获取相关数据;数据更新异步化,更新缓存时,同步调用服务,然后异步更新缓存。

前端服务异步化/聚合,实时价格、实时库存异步化,使用如线程或协程机制将多个可并发的服务聚合。

4、多级缓存化

使用缓存;

增加redis缓存,对商品id范围效验,增加对空值缓存防止频繁对数据库操作

增加前后台共用缓存key,后台修改可以直接修改更新缓存

部分频繁更新的部分字段内容,可以使用消息推送模式更新缓存

优化查询:商品详情页查询sku直接查返回数组

前台页面

页面可以考虑静态化,部分频繁变动内容可以再单调接口

服务器

可以根据需要可以做数据库读写分离和负载均衡

三.解决方案

1.使用hyperf的系统架构,

Hyperf 是基于 Swoole 4.5+ 实现的高性能、高灵活性的 PHP 持久化框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-FPM 的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性基于 PSR-11 的依赖注入容器、注解、AOP 面向切面编程、

基于 PSR-15 的中间件、自定义进程、基于 PSR-14 的事件管理器、Redis/RabbitMQ 消息队列。

2.查询商品详情 增加redis查询缓存和对商品id范围效验,增加对空值缓存防止缓存穿透。

缓存穿透,用户想要查询一个数据,发现redis数据库没有,也就是所谓的没有命中缓存,于是向数据库查询,发现也没有,于是查询失败。但当用户请求很多时,直接请求数据库,这会给数据库造成很大的压力,这时候就相当出现了缓存穿透。

3.查询语句优化对字段查询定义到数据组中方便管理,获取车型sku不再循环去取。

四.前后压测数据对比 略

旧地址

maiche-api-test.360che.com/goods_index/get_goods_detail/3

服务器:单台服务器4核8G配置    200-250

新地址

39.106.185.201/goods_index/get_goods_detail/3

服务器:单台服务器1核2G配置   1500

新增地址分开接口

单独查商品信息 http://39.106.185.201/goods/index/3

单独查sku信息 http://39.106.185.201/goods/sku/3

新压测服务器配置

CPU: 1核

内存: 2 GiB

实例类型: I/O优化

操作系统: CentOS 7.7 64位

弹性网卡: eni-2zehx48jsavw00ym8817 

公网IP: 39.106.185.201

Ngnix1.18.0  Php7.4  mysql5.5.6  redis6.0.6

三、意见建议:

1.校验取消正则;改用int或者is_number;

2.redis商品发布编辑增加缓存。

3.商品ID校验使用集合,避免ID断层情况;

4.业务性配置不要加env,放config。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 系统设计目标 本项目的目标是打造一款基于SpringBoot的助农电商系统,以解决农产品销售中存在的信息不对称、流通环节复杂、资源利用不充分等问题,提高农产品的销售效率,降低交易成本,促进农业现代化发展。 2. 系统架构设计 本项目采用B/S架构,前端采用HTML、CSS、JavaScript等技术,后端采用SpringBoot框架,数据库采用MySQL。 系统包括用户端和管理端,用户端主要用于展示商品信息、购买商品和查询订单等功能,管理端主要用于管理商品信息、订单信息和用户信息等。 3. 系统功能设计 3.1 用户端 (1)用户注册和登录功能:用户可以通过注册账号和登录系统来购买商品和查询订单。 (2)商品展示功能:用户可以浏览商品信息,包括价格、产地、规格、图片等。 (3)购买商品功能:用户可以选择商品、填写收货信息、选择支付方式等,完成购买流程。 (4)订单查询功能:用户可以查询已购买的商品订单信息,包括订单状态、订单号、商品名称、购买时间等。 (5)支付功能:用户可以选择支付宝、微信等在线支付方式进行支付。 3.2 管理端 (1)商品管理功能:管理员可以添加、修改、删除商品信息,包括商品名称、价格、规格、产地、图片等。 (2)订单管理功能:管理员可以查询、修改、删除订单信息,包括订单状态、订单号、商品名称、购买时间等。 (3)用户管理功能:管理员可以查询、修改、删除用户信息,包括用户名、密码、联系方式等。 (4)统计分析功能:管理员可以对商品销售量、订单量、用户量等进行统计分析,以便更好地了解市场需求和优化销售策略。 4. 系统安全设计 为保证系统的安全性,本项目采用了以下措施: (1)用户密码采用MD5加密算法存储,保证用户信息的安全性。 (2)采用HTTPS协议进行数据传输,保证数据传输的安全性。 (3)采用验证码机制,防止恶意攻击和暴力破解密码。 (4)限制用户登录失败次数,防止暴力破解密码。 5. 系统优化设计 为提高系统性能和用户体验,本项目采用了以下优化措施: (1)使用缓存技术,减少数据库访问次数,提高系统响应速度。 (2)使用CDN技术,加速静态资源加载速度,提高用户访问速度。 (3)使用异步处理技术,提高系统并发处理能力,减少用户等待时间。 6. 总结 本项目基于SpringBoot框架,采用B/S架构,实现了助农电商系统的设计和开发。系统具有用户端和管理端功能,保证了用户和管理员的使用体验和操作便捷性。同时,系统采用了安全措施和优化方案,提高了系统的安全性、性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值