高并发秒杀系统方案

Posted 虚极静笃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高并发秒杀系统方案相关的知识,希望对你有一定的参考价值。

项目框架搭建:

 DemoController:

package com.imooc.miaosha.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.imooc.miaosha.result.CodeMsg;
import com.imooc.miaosha.result.Result;

@Controller
@RequestMapping("/demo")
public class DemoController {
    
         @RequestMapping("/")
        @ResponseBody
        String home() {
            return "Hello World!";
        }
         //1.rest api json输出 2.页面
         @RequestMapping("/hello")
        @ResponseBody
        public Result<String> hello() {
             return Result.success("hello,imooc");
           // return new Result(0, "success", "hello,imooc");
        }
         
         @RequestMapping("/helloError")
        @ResponseBody
        public Result<String> helloError() {
             return Result.error(CodeMsg.SERVER_ERROR);
             //return new Result(500102, "XXX");
        }
         
         @RequestMapping("/thymeleaf")
        public String  thymeleaf(Model model) {
             model.addAttribute("name", "Joshua");
             return "hello";
        }
         
}

CodeMsg:

package com.imooc.miaosha.result;

public class CodeMsg {
    private int code;
    private String msg;
    
    //通用异常
    public static CodeMsg SUCCESS = new CodeMsg(0, "success");
    public static CodeMsg SERVER_ERROR = new CodeMsg(500100, "服务端异常");
    //登录模块 5002XX
    
    //商品模块 5003XX
    
    //订单模块 5004XX
    
    //秒杀模块 5005XX
    
    
    private CodeMsg(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    
    public int getCode() {
        return code;
    }
    public String getMsg() {
        return msg;
    }
}

Result:

package com.imooc.miaosha.result;

public class Result<T> {
    private int code;
    private String msg;
    private T data;

    /**
     * 成功时候的调用
     * */
    public static <T> Result<T> success(T data){
        return new  Result<T>(data);
    }
    
    /**
     * 失败时候的调用
     * */
    public static <T> Result<T> error(CodeMsg cm){
        return new  Result<T>(cm);
    }
    
    private Result(T data) {
        this.code = 0;
        this.msg = "success";
        this.data = data;
    }
    
    private Result(CodeMsg cm) {
        if(cm == null) {
            return;
        }
        this.code = cm.getCode();
        this.msg = cm.getMsg();
    }

    public int getCode() {
        return code;
    }
    public String getMsg() {
        return msg;
    }
    public T getData() {
        return data;
    }
}

MainApplication:

package com.imooc.miaosha;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MainApplication {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(MainApplication.class, args);
    }
}

hello.html:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="\'hello:\'+${name}" ></p>
</body>
</html>

application.properties:

spring.thymeleaf.cache=false
spring.thymeleaf.content-type=text/html
spring.thymeleaf.enabled=true
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

 

以上是关于高并发秒杀系统方案的主要内容,如果未能解决你的问题,请参考以下文章

(百度云百度网盘)11Java秒杀系统方案优化 高性能高并发实战

猿创|可能是最快的高并发单机秒杀系统设计方案

高并发秒杀系统方案

京东高并发秒杀解决方案

秒杀系统-高并发的优化

实战Java秒杀系统方案优化 高性能高并发实战