我是 WCF 服务的新手。
我们有一个监听 MSMQ 的服务。服务的 maxConcurrentInstances 和 maxConcurrentSessions 设置为 1。这导致队列中有大量消息,并且消息服务缓慢。
serviceThrottling 元素中的maxConcurrentInstances和 maxConcurrentSessions 属性有什么区别。
目前,服务 120 条消息需要 10 分钟,这非常慢。
什么应该是提高服务性能的理想值。
提前致谢
maxConcurrentInstances:无论并发模式和实例上下文模式如何,可以同时服务请求的服务类的最大实例数。
maxConcurrentSessions:同时活动的 WCF 会话的最大数量。
假设并发模式设置为 NO 多线程。
IF Instance context mode = Per session
THEN Max number of requests processed in parallel = Min(maxConcurrentInstances, maxConcurrentSessions)
IF Instance context mode = Per call
THEN Max number of requests processed in parallel = maxConcurrentInstances
IF Instance context mode = Single
THEN Max number of requests processed in parallel = 1
假设并发模式设置为多线程。
单个实例现在可以处理多个请求,但您必须处理并发问题。
重要的问题是:如何选择实例上下文模式?
之后就是调整最大实例数(对于 PerCall)和会话数(对于 PerSession)。通常,您首先将其设置为任意数字,例如 100,然后查看它是否会使事情变得更快。如果是这样,那很好。如果没有,请检查您的实例是否足够快地创建。