如何扩展Spring webservices?

时间:2015-08-14 06:47:17

标签: java spring web-services tomcat spring-ws

在强大的h / w节点上扩展部署在tomcat容器中的单个Web服务有哪些不同的方法?

克隆WS并在容器中部署此WS的多个实例并以某种方式平衡它(不太可能,给定Web服务是一个独特的端点)是否有意义?或者,tomcat应该在不同的端口上运行多个进程(即使在这里,WS客户端只有一个URL可以命中)?

1 个答案:

答案 0 :(得分:0)

为什么需要扩展?因为单个实例无法完成工作。

有哪些限制因素? CPU,内存,其他资源。

如果您遇到每个进程的限制,例如假设单个JVM的内存大小最大,那么在同一台机器上启动另一个Tomcat实例可能是有意义的。在这种情况下,正如您所说,您将需要使用不同的端口。从您的评论中,我认为您将此模式称为缩放 - 向上

你更有可能达到每机器限制,只是没有足够的CPU。在这种情况下,您需要在另一台计算机上启动新实例。这具有额外的弹性可能带来的额外弹性。你失去了一台机器,你仍然有一个在其他地方运行的服务。您将其称为缩放 - out

在任何一种情况下,您都需要在实例前面使用某种形式的IP sprayer或负载均衡器,这样您的客户端就不需要“了解”各个集群成员。

我认为两种情况之间并没有太大区别。从客户的角度来看,只需点击喷涂机即可。在服务器的角度来看,当scalin-up你需要确保资源不会发生冲突。端口是一个明显的例子,但你也需要考虑日志文件之类的东西。通常值得提出一组命名约定和资源结构,以便很容易识别属于哪些内容。

由于正确地完成所有这些配置可能容易出错,所以也值得投资一些脚本,以便设置实例是一个简单,可重现的任务。