Azure存储上的连接池

Azure存储上的连接池,azure,azure-storage,azure-storage-blobs,Azure,Azure Storage,Azure Storage Blobs,我开始使用Azure存储将文件保存到应用程序上的Blob。由于我的应用程序可以访问不同存储上的不同容器,我想知道如何实现一个连接池来优化资源 我希望保持与不同容器的连接打开,而不是每次尝试下载blob时都打开连接 谁能为我提供实现这一目标的最佳方法 谢谢对您的问题的简单回答是,您不能真正保持与Azure存储的连接处于打开状态,因为它本质上是一个基于请求/响应的HTTP连接。您向Azure Storage发出请求,它会向您发送响应,然后连接终止 事实上,Azure存储不允许您长时间保持单个连接的打

我开始使用Azure存储将文件保存到应用程序上的Blob。由于我的应用程序可以访问不同存储上的不同容器,我想知道如何实现一个连接池来优化资源

我希望保持与不同容器的连接打开,而不是每次尝试下载blob时都打开连接

谁能为我提供实现这一目标的最佳方法


谢谢

对您的问题的简单回答是,您不能真正保持与Azure存储的连接处于打开状态,因为它本质上是一个基于请求/响应的HTTP连接。您向Azure Storage发出请求,它会向您发送响应,然后连接终止


事实上,Azure存储不允许您长时间保持单个连接的打开状态,因为它是一项服务,需要为许多像您这样的客户端提供服务。因此,如果您尝试执行的操作时间超过Azure存储服务指定的阈值,该服务将使您的请求超时

是HTTP级别的连接被“终止”。底层TCP级别的连接可以使用“保持活动”并被持久化,除非服务器或客户端拒绝使用“保持活动”。谢谢Guaurav/@sharptooth!因此,本质上,每次我想对blob执行操作(下载、创建等)时,我都必须执行以下步骤:
CloudStorageAccount CloudStorageAccount=CloudStorageAccount.Parse(storageConnectionString);CloudBlobClient CloudBlobClient=cloudStorageAccount.CreateCloudBlobClient()_cloudBlobContainer=cloudBlobClient.GetContainerReference(blobContainerName)这些语句不进行网络调用。它们只是创建这些对象的实例,因此在创建这些对象的实例时没有与网络延迟相关的开销。不过,这可能会浪费大量的周期来创建您实际上不需要的对象。