Giter Site home page Giter Site logo

hhy5277 / -miaosha Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tengshe789/springcloud-miaosha

0.0 1.0 0.0 33.68 MB

一个简单的有秒杀功能的电子商城项目,适合新人阅读。A simple spike shopping mall project, suitable for new people to read. It can be used as a paper material for academic defense.

License: Other

Java 83.32% Dockerfile 4.30% Batchfile 0.22% Shell 12.16%

-miaosha's Introduction

miaosha秒杀商城 2代 (Spring Cloud 版本)

项目名称:秒杀商城----miaosha

由于面临毕业,且时间有限,准备把这个过去的项目使用微服务技术重构一下交上去。截至到2019年9月,会完成全部的更新。

附:老版本请看gitmaster的0.91版本

项目技术:

后端技术选型为:

Java 8、SpringBoot 2.0.7、Spring Cloud 、MyBatis 、Druid 、Redis、Actuator、Log4j、Thymeleaf 、RabbitMQ、Consul、Spring Cloud Bus、Spring Cloud Config、Spring Cloud Gateway、Feign、Hystrix等。

前端技术选型为:

Bootstrap、jQuery、Ajax、html、css等。

开发工具:

IntelliJ IDEA x64、MySQL 8、Kubernetes、Docker、Linux、Lombok、Maven、dev-tools、Admin-UI、Git、Navicat、JMetert、Jvisualvm、Postman

项目描述:

随着网络商城在全球范围内的广泛应用,人们对于互联网技术的要求已不单单是浏览一下网页,日益忙碌的人们已经习惯的利用网络商城这一强大的平台实现的网上购物。可随着网络商城的用户量不断增多,网络商家的营销活动不断增多,许许多多的传统网络商城会出现一系列的性能问题。

双十一的秒杀活动家喻户晓,天猫、京东、苏宁等等电商网站经常会在凌晨零点出现服务中断现象。例如在某一个时刻抢购一个原价1999现在秒杀价只要999的手机时,会迎来一个用户请求的高峰期,可能会有几十万几百万的并发量,来抢这个手机,在高并发的情形下会对数据库服务器或者是文件服务器应用服务器造成巨大的压力,严重时说不定就宕机了。

第二个问题是,秒杀的东西都是有量的,一款手机只有10台的货物量,那么,在高并发的情况下,成千上万条数据更新数据库,那次这个时候的先后顺序是很乱的,很容易出现10台的量,抢到的人就不止10个这种严重的问题。

第三个问题是,传统的购物商。应用往往使用集群方式管理,即一个虚拟化节点上往往会部署负责多种业务的模块。在高流量的压力下往往会导致多个节点不可用,这时只能通过传统的“加机器”方式来缓解压力。这在已经步入2019年的今天是极其不可取的。

本课题的目标是设计一个“秒杀商城”云服务平台,解决这些严重的系统性能问题、数据一致性问题、架构问题。

平台使用微服务架构搭建,主要集成两种系统,第一种系统实现以下功能:用户登录、用户管理、权限管理;第二个系统实现以下功能:商品列表、商品详情、商品秒杀、订单详情、第三方支付。同时平台会有公共的网关负责管理权限,会有服务代理进行负载均衡策略分发流量。

项目特点:

  1. 基于SpringBoot,简化了大量项目配置和maven依赖,让您更专注于业务开发,独特的分包方式,代码多而不乱。
  2. 页面缓存与SSR。利用Thymeleaf 模板引擎对页面进行封装和渲染,使臃肿的html代码变得简洁,更加易维护。
  3. 对象缓存。利用redis对经常调用的查询进行缓存,提升运行速度。
  4. 统一拦截器。控制器层统一的异常拦截机制,利用@ControllerAdvice统一对异常拦截,有利于对异常的维护。
  5. 高效密码加密。客户端将输入密码与固定的盐值进行md5哈希算法进行计算,用ajax将数值传入服务端吗,防止用户明文密码在网络进行传输,预防数据库被盗,避免通过MD5反推出密码,双重保险。
  6. 注解验证。使用JSR303自定义校验器,实现对用户账号、密码的验证,使得验证逻辑从业务代码中脱离出来。
  7. 分布式Session。使用客户端存储法和缓存存储法,解决session不一致问题。
  8. 界面静态化。重新设计秒杀商品页面,页面内容静态化,用户请求不需要经过应用服务。
  9. 异步下单。使用了Rabbitmq,用户提交请求时直接返回入队,性能也会提高。
  10. 秒杀地址隐藏。自动生成秒杀地址,预防高流量访问。
  11. Jvm调优。固定堆内存大小,减少内存自动扩容和收缩带来的性能损失。
  12. 谷歌V8渲染。使用JSR223规范,利用JS v8引擎渲染计算图形验证码。
  13. 容器化。使用docker进行容器化,使部署简便快捷。
  14. 负载均衡。使用nginx反向代理进行负载均衡,增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
  15. 后台监控功能。使用基于Actuator的Admin UI显示各个服务的状态。

未来目标

  • 未来目标:争取早日建成一个高并发 、高可用 、高性能的秒杀系统平台

项目界面:

登陆

怎么使用:

待重构完在更新。

联系我:

微信:tengshe789

欢迎加微信~

版本迭代Update content:

第14版 2019-1-7

参考资料

我博客里的参考文献

代码中注释的网页连接

-miaosha's People

Contributors

tengshe789 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.