我正在编写Rest Web Services。 我不擅长设计。 目前我想知道服务处理程序应该是单例还是静态。
@RequestMapping(value="/{input}" ,method=RequestMethod.GET)
public String getOutput(@PathVariable String input){
ResourceRestService.getInstance().outPutService().getOutput(input);
}
在这种情况下,使用ResourceRestService或OutputService的单例实例是否正确? 当请求数量增加时是否会导致任何性能开销,如果是,则解决方案应该是什么?
答案 0 :(得分:0)
您所做的是标准,没有问题。由于它是单例且非线程安全的,因此该类不应该维护状态,它所要做的就是获取请求并发送响应。如果请求数量增加,您可能必须使用集群环境(apache mod_jk等)
答案 1 :(得分:0)
你的服务方法不应该是一个单身人士,除非你特别需要你这样做以便在线程安全的情况下如此,
你应该把它变成静态的。
当没有任何请求增加时,您可能需要考虑许多场景进行扩展,非详尽列表如下所示 1.是由于数据库层吗?没有记录,数据库性能等等 2.是否由于服务层?由于各种原因在服务层进行处理 3.是否由于服务器功能?最多可以处理的请求
等......