WCF服务的并发与实例化管理
1. 并发与实例化基础概念
在WCF(Windows Communication Foundation)服务中,并发和实例化是影响服务性能和可扩展性的重要因素。
-并发(Concurrency):指的是同时可以执行的任务数量,通常以任务(如请求、作业、事务等)为单位进行衡量。
-执行时间(Execution Time):表示一个任务完成所需的时间,通常以毫秒、秒等时间单位来衡量。
-吞吐量(Throughput):指在固定时间内完成的任务数量,通常表示为任务/时间(如请求/秒、事务/分钟等)。吞吐量是并发和执行时间的函数。
提高吞吐量有两种方式:
- 减少单个任务的执行时间,可以通过更改任务的内部算法或增加额外的硬件资源来实现,但WCF在这方面的作用有限。
- 增加并发,可通过并行执行任务来实现。WCF提供了两种行为来控制并发:ConcurrencyMode和InstanceContextMode。
1.1 InstanceContextMode
InstanceContextMode用于控制服务实例的创建方式,它可以设置为以下三个值之一:
-Single:服务类的一个实例处理所有传入的请求,实现单例模式。
-PerCall:每个传入请求创建一个服务类的