0

你好

我有一个缓存服务器(用 Java+Lucene 框架编写),它保存大量数据并根据请求查询提供它们。

它基本上是这样工作的:

  1. 在启动时,它连接数据库并将所有表存储到 RAM。
  2. 它监听请求并提供适当的数据作为数组列表(大约 1000 - 20000 行)
  3. 当用户访问网页时,它会连接到缓存服务器,请求并显示服务器响应。

由于内存问题,我计划在不同的实例中运行 Web 和缓存应用程序。缓存服务器作为服务,web 在 Tomcat 上。

您对如何在 Web 端和缓存服务器之间建立通信有什么建议?

我需要将带有数组列表的大量数据从一个实例传递到另一个实例。我应该考虑 Web 服务(xml 通信)、nio 套接字通信(可能是 Apache MINA)还是像 CORBA 这样的解决方案?

谢谢。

4

1 回答 1

1

这实际上很大程度上取决于您未指定的注意事项。

  1. 客户是什么?例如,如果您的客户端是运行 AJAX 的 javascript,那么显然 HTTP 上的东西比专有的 UDP 解决方案更有用。
  2. 它在哪个网络上工作?本地网络的行为与互联网不同,而移动互联网则与两者截然不同。
  3. 您可以对缓存进行多精细的使用?如果您使用 HTTP,您可以很好地控制(通过 HTTP 标头)客户端缓存和网络缓存,以及可以同时使用这两者的大量现有软件。

还有许多其他因素需要考虑,并且有许多现有的系统实现可以满足更常见的需求。根据您给出的(不是很详细的)描述,我建议您看一下Redis

于 2012-11-22T15:33:47.460 回答