如何限制访问实例的请求数量?

时间:2016-06-26 05:31:11

标签: java

我有一个带有Java服务器的Web应用程序,Java应用程序正在从Web获取请求。

问题是有一个对象的实例每次只能处理一个请求,并且Web请求在对象完成其工作之前到来。

如何为这些请求创建某种“连接池”?或者还有其他方法可以限制对此对象实例的访问吗?

我在某种方法中使用了synchronized声明,并且它做得非常好,但问题是它没有被排序。如何控制此方法的传入请求的顺序?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用synchronized关键字同步所有请求线程共享的方法。 这样做的缺点是它会影响你的表现。 所以要保持同步块很小。

答案 1 :(得分:1)

您可以将请求视为命令并将它们存储在队列中并按1进行处理1.但这会对用户产生影响(如前所述)响应时间会增加。为了克服这个问题,可以异步完成命令的处理,这意味着用户将调用命令并获得正确接收命令的答案。一旦服务器完成处理命令,服务器就可以回叫用户,通知他该命令已被(成功)处理。

请注意,这可能会成为一个复杂的解决方案,最好检查一下是否无法删除/重构单例。