我有一个 .net WCF 服务(托管在 IIS 7.5 上),它对插入多个表的 SQL Server 2008 r2 存储过程进行大量调用。尽管在夜间处理的请求量较少,但此 WCF 服务的客户端使用 24/7。大多数情况下这可以正常工作,但每月必须运行一次 SSIS 作业,这会向同一个表进行大量插入。当 SSIS 作业运行时(大约需要 4 小时才能完成),它会导致 WCF 服务出现问题,从而导致超时。
我最初的想法是修改存储过程,以便对临时表进行插入,然后将其合并到主表中。但是,负责 SQL 服务器的 DBA 告诉我,在 SSIS 作业运行期间,服务器已完全耗尽。
所以,我需要想出某种形式的缓存/队列,它不会命中 SQL Server。此缓存还需要具有弹性和可扩展性。App Fabric 缓存是最好的工具吗?我快速浏览了 API,但看不到像队列一样使用它的明显方法,从缓存中获取的方法似乎需要一个密钥——新的服务从缓存中提取并写入永久 SQL 存储(一旦 SSIS 作业完成)。
过去我曾使用 MSMQ 来解决类似的问题,但所有关于此的文档似乎都非常陈旧,所以 App Fabric Cache 可能是当今的首选?
谢谢,
抢。