Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services webservices实现设计_Web Services_Design Patterns - Fatal编程技术网

Web services webservices实现设计

Web services webservices实现设计,web-services,design-patterns,Web Services,Design Patterns,我正在写一个RESTWeb服务。 我不擅长设计。 目前我想知道服务处理程序应该是单例的还是静态的 @RequestMapping(value="/{input}" ,method=RequestMethod.GET) public String getOutput(@PathVariable String input){ ResourceRestService.getInstance().outPutService().getOutput(input); } 在这种情况下,使用Resourc

我正在写一个RESTWeb服务。 我不擅长设计。 目前我想知道服务处理程序应该是单例的还是静态的

@RequestMapping(value="/{input}" ,method=RequestMethod.GET)
public String getOutput(@PathVariable String input){

ResourceRestService.getInstance().outPutService().getOutput(input);
}
在这种情况下,使用ResourceRestService或OutputService的单例实例是否正确?
当请求数量增加时是否会导致性能开销如果是,那么解决方案应该是什么?

您所做的是标准的,没有问题。由于它是单例且非线程安全的,所以该类不应该维护状态,它所要做的就是获取请求并发送响应。如果请求数量增加,您可能必须使用集群环境(apache mod_jk等)

您的服务方法不应该是单例的,除非您特别需要做您喜欢的事情,以使其线程安全

你应该让它静止

<>当没有请求增加时,您可能需要考虑的场景很多,一个非穷尽列表如下 1.是由于数据库层的原因吗?记录数量、数据库性能等 2.是由于服务层的原因吗?由于各种原因在服务层处理的金额 3.这是因为服务器功能吗?它可以处理的最大请求数


等等。

谢谢你的回复。毫无疑问,如果一个请求已经出现,并且它正在getOutput方法中处理,同时新的请求出现,那么新的请求是否必须等到第一个请求完成,因为类是singleton?不。服务器会为您创建另一个线程。因此,代码是并行执行的。你不必担心。