[英]How to handle few of many simultaneous Web requests in Java Server?
我创建了一个带有 JSP 和 Servets 的 Java Web 服务器来处理获取/发布请求。
如果 1000 个 Web 请求同时命中服务器,而我想处理前 10 个,我将如何实现? 例如,我只想在前 10 个请求上运行特定代码。
我需要使用什么技术? 我需要使用同步代码吗? 我需要使用线程池吗? 我需要使用队列吗? 推荐的解决方案是什么?
如果您真的需要这样做,只需使用AtomicInteger
作为您的计数器(背后的原因是 servlet 在多个请求之间共享,因此您可能会遇到同步问题)。 所以你的代码可以是这样的
public HitCounterServlet extends HttpServlet {
private AtomicInteger counter = new AtomicInteger();
public void doGet(HttpServletRequest req, HttpServletResponse res) {
int counterValue = counter.incrementAndGet();
if(value <= 10) {
// handle request
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.