【脱发日记之项目篇】高并发电商项目——易购商城

历时20天左右,高并发电商项目——易购商城,终于算是小成了!这是第一个由传统的单体项目过渡到微服务分布式项目。呼呼呼~~

按照计划,是准备正式上线的。由于一些原因,导致了只能以截图的方式体现。由于项目过多,租的阿里学生机带不动,服务器超载,另外受经济等一系列因素的限制,负载均衡等技术无法实现(只租一台学生机,虚拟机实现的多服务器电脑CPU却超负荷,其实到最后只启动idea项目,电脑就这样了。。。)这也是项目无法负载均衡的不可控因素。
在这里插入图片描述

技术选型:

JSP
jQuery
EasyUI
Spring Boot
Spring MVC
MyBatis
MyBatis Generator
Druid
Logback
MyBatis PageHelper
Dubbo
FastDFS-java-client
Spring Data for Apache Solr
Spring AMQP
Spring Data Redis
Spring Security
HttpClient/RestTemplate

开发工具和环境:

Maven
Linux
IDEA
Zookeeper
FastDFS
Nginx
Solr
RabbitMQ
Redis
MyCat
MySQL
Tomcat

电脑硬件原因,本来使用多台虚拟机换成了租一台阿里学生机,效果还算不错,至少能够保证项目顺利完成。

项目整体如下:

在这里插入图片描述
在这里插入图片描述

模块说明:

ego_parent:

父项目,之所以统一父项目,最主要的一点就是可以实现对项目整体版本统一管理与控制

ego_pojo:

实体类与数据库表一一对应。

ego_mapper:

编写所有数据库访问代码,使用逆向工程生成。

ego_api:

编写接口。

ego_provider:

编写接口实现类(提供者)。

ego_manager:

网站后台系统,功能完成相比之下较少,所以没有过多拆分项目。

ego_portal:

用户访问的门户。

ego_search:

solr搜索商品信息。

ego_item:

商品详情模块。

ego_cart:

购物车模块。

ego_passport:

单点登录系统。

ego_trade:

订单系统。

ego_redis:

包含所有对Redis操作,只需依赖这个项目即可操作Redis。代码的复用性。

ego_rabbitmq_sender:

rabbitmq发送消息。依赖此项目就可发送消息。

ego_rabbitmq_receive:

rabbitmq消息接收,监听rabbitmq队列。

效果展示:

1.管理员登录界面
在这里插入图片描述
2.新增商品 上传图片使用FastDFS,Nginx实现图片回显。在这里插入图片描述
选择商品类目后,会出现商品规格参数信息加上商品描述(要点:item+desc+param三表新增)
在这里插入图片描述
3.查询商品功能。PageHelper实现分页查询功能;CRUD操作就不一一示范。另外,这里删除、上架、下架是通过status控制,并不是真正意义上的删除。
在这里插入图片描述
在这里插入图片描述
4.规格参数 基于Json数据格式,实现商品规格参数管理。
在这里插入图片描述
5.内容分类管理 树状菜单 使用递归数据结构实现内容分类新增,通过is_parent状态判断。查询内容分类时,默认值等于0。
在这里插入图片描述
6.内容管理:选中内容分类,进而实现新增,编辑,删除等功能。
在这里插入图片描述
7.门户 SpringCache实现左侧导航栏,大广告位缓存功能。为了提高性能,在对大广告进行增删改操作时,使用rabbitmq消息队列,处理耗时任务。
在这里插入图片描述
在这里插入图片描述
8.搜索 服务器禁用Flash对图片有这莫名的影响。。。Spring Data for Apache Solr实现海量数据检索
在这里插入图片描述
9.商品详情 点击商品将商品信息同步到redis缓存中,提高性能。
在这里插入图片描述
10.注册功能 通过Ajax异步请求,在后端实现对数据的check,与JS相互配合使用。
在这里插入图片描述
11.登录功能 Spring Session 与Redis联用 ,实现Session共享。
在这里插入图片描述
登录成功。在这里插入图片描述
12.购物车 临时购物车 和用户购物车。临时购物车,用户在未登录时,将商品添加到购物车,此时将商品数据从redis中获取,保存到cookie中。用户购物车,用户登陆时, 将临时购物车中商品添加到用户购物车中,清除cookie,如果用户购物车中已经添加了此商品,那么只更改num即可。
在这里插入图片描述
13.去结算 订单结算,使用rabbitmq消息队列排对避免多用户同时下单出现商品为负的情况, order ,order-item ,order-shipping三表新增。
在这里插入图片描述
在这里插入图片描述
14.订单完成 使用rabbitmq消息队列,实现发送邮件,清空购物车等功能。
在这里插入图片描述
最后的项目部署就不一一操作了 。。。
Maven打包插件,需要注意的就是需要在POM中添加打包插件功能。带有页面的模块,需要打成war包。

博客就到这里了 ,图片插入过多,造成卡顿。想要具体了解项目的,可以私信我哦~~

感谢大家的阅读,希望与诸位共同进步!!!冲冲冲!!!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值