当前位置:   article > 正文

Java项目——黑马点评实战篇_黑马点评项目介绍

黑马点评项目介绍

一、项目总介绍

(一)项目技术

        SpringBoot+MySql+Lombok+MyBatis-Plus+Hutool+Redis

(二)项目描述

        黑马点评项目是一个前后端分离项目,类似于大众点评,实现了发布查看商家,达人探店,点赞,关 注等功能,业务可以帮助商家引流,增加曝光度,也可以为用户提供查看提供附近消费场所。主要用来配合学习 Redis 的知识。
        

二、短信登录

(一)导入黑马点评项目

1、提供的SQL文件生成的表

2、项目架构

前后端分离部署(因为重点是学习Redis的企业开发,为避免麻烦,未使用微服务开发)

解释上图:

前端部署在nginx服务器上,

基于Session实现登录
集群的session共享问题
基于Redis实现共享session登录

三、商户查询缓存

四、优惠券秒杀

(一)全局ID生成器

(二)实现优惠券秒杀下单

(三)超卖问题

引出:

上节课的秒杀是自己在页面点击实现的,而真实秒杀场景下用户每秒下单量可能达到数万,在如此强大的高并发下,会出现什么问题呢?会不会超卖呢?

使用jmeter实现高并发场景:

问题分析:

分析线程问题:

理想情境下:

高并发实际情况:

原因:多个线程操作共享的资源,并且操作资源的代码有好几行,在这之间多个线程相互穿插,就出现了安全问题。(Java多线程安全问题

超卖问题是典型的多线程安全问题,针对这一问题的常见解决方案就是加锁

锁有两种——悲观锁、乐观锁。

两种锁对比如下:

乐观锁的两种实现方案:

版本号法、CAS法

利用以上的锁,可以实现避免超卖问题

(四)一人一单

解决了超卖问题,还有一个问题待解决——

黄牛下单,一个人买完所有券,所以要实现一人一单功能。

由上面的分析,仅在下单前做一个user_id与voucher_id是否存在的判断即可

代码修改:

(五)分布式锁

(六)Redis优化秒杀

(七)Redis消息队列实现异步秒杀

五、达人探店

六、好友关注

七、附近的商户

八、用户签到UV统计

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/693066
推荐阅读
相关标签
  

闽ICP备14008679号