【问题标题】:WCF request throttlingWCF 请求限制
【发布时间】:2012-03-08 08:53:41
【问题描述】:

我正在使用作为服务参考添加到我的解决方案中的第三方 .NET 4 WCF 服务。有没有办法配置请求,使我的服务不是 Ddos:ing 第三方服务?

我知道ServiceThrottling 可以控制以下参数:

- MaxConcurrentCalls
- MaxConcurrentSessions
- MaxConcurrentInstances

我的应用程序是单线程的,所以上面的参数不会有影响。

我想限制每个时间段的请求数。也许通过在每个请求之间暂停。我显然可以为该服务编写一个适配器并自己处理,但第三方服务包含约 200 个方法,因此需要大量代码。

是否可以通过这种方式限制请求通过配置

【问题讨论】:

    标签: c# wcf request throttling


    【解决方案1】:

    您的问题已经有好几个星期了,所以我不知道您是否还需要它。至少值得一试......另外,如果我误解了你的情况,请纠正我。

    据我了解,您希望将自己的服务限制为只能一个接一个地调用第三方服务。我不知道对此有可配置的解决方案。但是,正如您所说,您可以实施自己的解决方案,我建议采用不同的方法。

    您可以将您的请求放入一个队列,然后一次处理一个队列条目。 这可以通过多种方式实现,具体取决于您必须使用的环境。

    我想到了两个解决方案。

    一种简单的方法可能是在您自己的服务中使用内存中的队列,每个条目调用一次第三方并使用某种locking。但这可能需要仔细考虑以避免丑陋的死锁。

    更复杂但可扩展性更好的解决方案: 您可以configure your service 写入 Microsoft 消息队列 (MSMQ) 基础架构,add another service 将这些消息按顺序处理到第三方服务。

    【讨论】:

    • 感谢您的回复!不错的答案!我最终为第 3 方服务实现了一个包装器。我不需要使用队列,但我喜欢这个主意!
    猜你喜欢
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 2017-08-28
    • 2015-11-22
    相关资源
    最近更新 更多