0

我有一个使用 SOAP、REST 服务或仅使用数据库存储过程与多个内部和外部源通信的应用程序。显然,性能和稳定性是我正在处理的一个主要问题。即使端点处于最佳状态,对于大量数据,我也很容易看到需要 10 秒的调用。

所以,我试图通过预取数据并在本地存储来提高我的应用程序的性能——这样至少读取操作很快。

虽然我的应用程序是数据的主要消费者和生产者,但某些数据也可以从我的应用程序外部更改,我无法控制。如果我使用缓存,当此类数据从我的应用程序外部更改时,我将永远不知道何时使缓存无效。

所以我认为我唯一的选择是运行一个作业调度程序来持续更新数据库。我可以根据用户登录和使用应用程序的频率对用户进行优先级排序。

我说的是 50,000 个用户,以及至少 10 个非常慢的端点,有时一个呼叫可能需要一分钟。Quartz之类的东西会给我我需要的规模吗?我将如何绕过计划成为单点故障?

我只是在寻找不需要高维护的东西,并且至少可以加速一些不太复杂的子系统 - 如果不是大多数的话。有什么建议么?

4

1 回答 1

0

这听起来确实像您可能需要一个数据仓库。您可以按照任何必要的时间表从各种来源更新数据仓库。但是,所有只读事务都来自数据仓库,不需要立即调用各种外部源。

这假设您不需要实时访问最新数据。即使您需要来自特定来源的过去一小时内准确的数据,这也仅意味着您需要每小时从该来源进行更新。

你还没有说你正在使用什么平台。如果您使用的是 SQL Server 2005 或更高版本,我建议您使用 SQL Server Integration Services (SSIS) 来更新数据仓库。它就是为这种事情而生的。

当然,根据您的平台选择,可能会有更合适的替代方案。


以下是有关 SSIS 和数据仓库的一些资源。我知道您已经声明您不会使用 Microsoft 产品。我将这些链接作为参考点:这些是我在上面谈论的产品。

于 2009-08-15T01:42:37.900 回答