2

我的主要目标是提供一个用 jquery 编写的基于 solr 的搜索应用程序。(对于那些不熟悉 solr 的人,假设它是一个可以返回搜索结果的 rest api。)为此,我编写了许多小型应用程序和 servlet,每个应用程序都执行一项临时任务。例如:

  1. SearchApp - 一个 jquery 应用程序,最终用户可以在其中执行搜索。
  2. SolrProxy - 在 SearchApp 和 solr 之间扮演代理角色的 java servlet。它所做的一件事是记录用户请求以供以后分析。
  3. StatsApp - 一个执行用户活动分析并返回包含数据的 json 的 servlet。
  4. Indexer - 一个 java 应用程序,可以根据我的要求将数据索引到 solr。在这个过程中,它还获取一个 SQLServer DB,然后对 DB 执行一些更新命令。
  5. IndexerServlet - 一个异步 servlet,它使用 Indexer 提供通过 http 请求执行索引的能力。
  6. Nutch - 一个开源项目,将数据索引到 solr,以满足 Indexer(3) 中未完成的其他要求。
  7. (MAYBE) - 一些将执行预定 Nutch 运行的服务。

并且可能会添加更多组件。

拥有多个 java 项目,每个项目都执行一项任务,而不是拥有一个处理大部分组件的项目,这似乎有点错误。对此有何想法和见解?我应该将所有 Java 应用程序合并到一个项目中吗?我应该为此使用某种框架吗?还是我应该像现在这样生活?

4

1 回答 1

2

我认为拥有所有这些单独的应用程序并不是一个坏主意。他们似乎都在做一件事,而且做得很好。您可以做的是通过统一的界面公开它们。所以本质上你有一个外观,它位于所有这些不同的服务前面,呈现一个抽象和统一的接口。该服务的消费者将不知道该外观背后的内容。这也很好,因为现在您可以在不影响其他组件的情况下单独更新和替换单个组件。如果您将所有这些组合为一个,则每次修改其中一个组件时都必须推送一个新版本。

于 2013-03-12T17:44:44.613 回答