使用LRS创建的Azure存储帐户有3个副本。有没有办法阅读这些数据的副本?
答案 0 :(得分:1)
简单的答案是否定的。您无法指定要从中读取数据的副本副本。
答案 1 :(得分:1)
我们不能仅在连接字符串中的帐户名上添加-secondary。标准连接字符串中的AccountName = {...}字段用于推断资源URL和进行签名。使用RA-GRS时,必须使用-secondary端点路由请求,但仍使用帐户名(不使用-secondary)对请求进行签名。如果尝试使用客户端库或存储资源管理器进行RA-GRS读取,则不能简单地在连接字符串中添加-secondary:这会将请求路由到正确的位置,但是验证将失败,因为它们试图使用实际上不存在的“辅助帐户”对请求进行签名。
所以,而不是
AccountName = account-secondary; AccountKey = XXX; EndpointSuffix = blob.core.windows.net
应该是
AccountName = account; AccountKey = XXX; BlobEndpoint = https://account-secondary.blob.core.windows.net
希望此解决方案对您有用。谢谢。
答案 2 :(得分:0)
除了@ gaurav的简洁回答外,还有一个小小的延伸:
您可以假设当您执行写操作,然后立即执行读操作时,您将始终获得最新数据(即,区域内的副本不是最终一致;它具有很强的一致性)
从非主要读取的唯一选项是配置只读地理复制存储时。然后,您可以选择在备用(辅助)区域中读取(但不写入)存储,方法是在连接字符串中使用storageaccountname-secondary
而不是storageaccountname
。