在从工作流调用长时间运行的WCF服务之前排队



我有一个长期运行的工作流服务,我从中调用几个服务。其中一个服务是长期运行的共享企业WCF服务,它连接到遗留系统,其吞吐量受到底层遗留系统的限制。当到达调用共享WCF服务的步骤时,很可能在内存中有数百个WF实例。WCF Services不限制实例创建或关系实例创建。

在我的工作流过程和被调用的WCF服务中,我可以预期的问题是什么?如果不直接调用WCF服务,而是将其排队,并根据WCF服务吞吐量限制对WCF服务的调用次数,会有帮助吗?如果排队是一种方式,那么在工作流中有哪些现成的选项可以实现相同的功能?

同样,管理工作流中服务可用性问题的理想设计是什么?

在这种情况下,排队调用较慢的服务是一个好主意。如果不这样做,整个系统将备份,工作流阻塞等待I/O的线程,最终您将遭受线程饥饿。即使在这种情况下打开节流,也只是将问题推给正在发送消息的客户端应用程序。

我会考虑使用Azure ServiceBus Queues或MSMQ

最新更新