0

我有一个带有两台服务器的生产环境。我有一个用户提交数据的页面,然后单击保存,数据库将使用提交的信息进行更新。发生这种情况后,我需要向两台服务器发送一个 GET 请求。这些请求基本上运行方法来获取更新的数据,并将其保存到内存中。我一直在使用 jQuery 来调用这样的 URL:

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS1/contextRoot1/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS1/contextRoot2/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS1/contextRoot3/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS2/contextRoot1/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS2/contextRoot2/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS2/contextRoot3/servlet1?param=value&param2=value2'<br />
});

我需要使用机器的 IP 地址,因为我有一个负载均衡器,当他收到对域的请求时,它会将请求转发到使用最少的机器。我也很确定 jQuery 不会执行 6 个 ajax 请求。我也遇到了 jQuery 和跨域约束的问题。我尝试使用 jQuery-xdomain-ajax.js,但它是一块垃圾(它对我不起作用)。我有一个解决方案,但我只是想知道是否有更好的解决方案。我现在的解决方案是打开一个弹出窗口,并将其他三个 ajax 请求提交到另一台服务器。我不能让外部进程每隔一段时间调用一次请求。

两台应用服务器是 JBoss,Web 服务器是 Apache
一台数据库服务器是 MySQL
操作系统是应用服务器和数据库服务器上的 linux

任何帮助将不胜感激。

4

1 回答 1

0

如果您需要将一些数据放在内存存储中,您应该使用 Infinispan 分布式缓存包,JBoss 为 7。

在本文档中,您可以找到如何创建容器以及如何通过注入访问 Inifinspan 缓存。

通过使用 Inifinspan,每个 JBoss 节点都可以访问相同的共享缓存,您将获得可扩展且高度可用的解决方案。

于 2012-08-31T20:22:07.323 回答