.net SDK中AWS客户端的建议生命周期是多少?

时间:2017-01-28 11:29:01

标签: .net amazon-web-services aws-sdk amazon-sqs

例如,在Web或其他多线程应用程序中使用AmazonSQSClient

任何时候都应该存在多少个实例?

我应该处理它并创建一个新的吗?

我是否需要阻止创建多个实例?

1 个答案:

答案 0 :(得分:4)

所有客户端实例都是.NET SDK中的线程安全。因此,如果该客户端的状态满足所有线程的需求,则可以在应用程序中重用单个客户端。客户端也非常轻量级,因此实例化和处理它们将产生很少的开销,并且也是有效的使用选项。

AmazonSQSClient是一个示例,您可能希望多个客户端使用长轮询来最大限度地提高性能,但是您需要支付一些额外费用,因此您需要平衡这些针对您的应用的问题。

我能想到处理和重新初始化Client实例的必要条件的唯一原因是防止内存泄漏和释放引用。我没有足够的.NET SDK经验可以说明这一点,但我没有遇到Java SDK中的AWS SDK类引入的内存泄漏问题,实现设计似乎也很相似。