外部数据依赖性的性能问题

时间:2009-08-15 01:34:04

标签: performance web-services quartz-scheduler

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

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

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

所以我认为我唯一的选择就是让一个作业调度程序运行一致地更新数据库。我可以根据用户登录和使用应用程序的频率来确定用户的优先级。

我说的是5万个用户,至少10个端点非常慢,有时可能需要一分钟才能完成一次通话。石英这样的东西会给我我需要的尺度吗?我如何绕过计划成为单点故障?

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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


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