我被要求构建一个将由ESB进程使用的Web服务(IIS托管),并且Web服务需要针对3个单独的数据库运行3个查询以收集所需的数据。
一旦收集,WS中就会发生一些高级转换(因此我们不能直接在ESB流程中转换,因为转换能力有限)。
我的问题是......在Web服务中运行3个数据库查询是否被视为可接受的方法?如果没有建议采用其他方法?
我很欣赏我查询的数据库越多,潜在的可靠性可能会降低,但我们有负载均衡和群集数据库场,因此通常Web服务应该始终能够连接到数据库服务器
关于方法的想法?
答案 0 :(得分:0)
由于您无法实现任何类型的缓存,因此您的要求似乎要求您查询三种不同的来源。
至于最佳方法,我会考虑Parallel Tasks,您甚至可以使用CancellationToken
在任务上设置超时,以确保不超过WCF响应超时。
答案 1 :(得分:0)
这取决于你的任务。如果您不需要保证ACID,则可以对三个数据库使用三个查询。
如果您需要使用交易,可以使用transactions in WCF services。但请注意,交易是短暂的,流动的交易可能会增加交易时间。