将请求对象传递给在不同服务器上运行的同一应用程序的不同servlet/action

问题描述 投票:0回答:3

您好,我有一个应用程序运行在不同的服务器上,该应用程序在 struts2 中构建并部署在 Tomcat5 中。现在我在此应用程序中具有“全部保存”功能。当调用它时,需要将相同的请求参数传递给所有服务器中运行的所有应用程序的所有 servlet/action。这怎么办?


例如我在局域网中有5台服务器,每台服务器都有独立的tomcat和mysql。该应用程序部署在每个 tomcat 中。现在,如果我从任何服务器上运行的应用程序上传图像,它应该上传到所有服务器。

java servlets
3个回答
0
投票

我会使用类似 Apache HttpClient 库 的东西。但是,请注意:根据您的应用程序,多台服务器中的一台出现故障可能会使事情处于奇怪的状态。如果我是你,我会彻底测试这一点,包括拔掉网络电缆。


0
投票

解决方案完全在别处。您当然不想想在网络界面级别解决它。您需要在服务器软件级别解决它。应用程序服务器需要在集群环境中运行,所有服务器共享相同的数据。这是 Tomcat 5.5 文档,描述了如何执行此操作:http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html

数据库服务器也存在类似的情况,但由于您没有提到是否以及如果是的话您正在使用哪一个,我无法提供详细文档的链接,如何做到这一点。您现在至少知道搜索关键字“集群”

祝你好运。


0
投票

从您的进一步评论来看,我认为您的处理方式完全错误。如果您需要图像,请不要复制它;制作一个简单的服务来存储图像并从其他应用程序调用它。这被称为“面向服务的架构”。 (在这个名字下,您会听到很多企业废话;忽略它,以及那里的 SOA 产品。只需制作一个简单的应用程序,让您可以发布图片并稍后再次获取它们。)

© www.soinside.com 2019 - 2024. All rights reserved.