今天无意中看见了这位兄弟的文章 通过请求队列的方式来缓解高并发抢购(初探) 但文章最后说并发超过500 就会出现超发,看了下代码,的确有这个问题
抽空简单完善了下,经压力测试后发现暂无超发现象, 下面为我的代码,有不足之处请指正交流:
1.请求参数封装,有个随机的用户ID 用来区分不同用户的请求:
importjava.util.Random;public classOrderRequest {private int goodId = new Random().nextInt(100000);//商品id
private int userId = new Random().nextInt(100000);//用户ID
private int status;//0:未处理;1:正常;2:异常
public intgetGoodId() {returngoodId;
}public void setGoodId(intgoodId) {this.goodId =goodId;
}public intgetUserId() {returnuserId;
}public void setUserId(intuserId) {this.userId =userId;
}public intgetStatus() {returnstatus;
}public void setStatus(intstatus) {this.status =status;
}
}
2.controller 入口:
importjava.util.concurrent.ConcurrentLinkedQueue;importjava.util.concurrent.ExecutorService;im