Azure文档缺乏,文章经常过时。
我已经读过" 瞬态故障处理"现在可以完全管理Azure服务( ServiceBus , FileStorage ...)的(TFH)。现在似乎没有什么可以在客户端实现。过去,我们可以使用企业库来管理这些目的,但它已经退役。为了访问 SQL数据库,为实体框架(https://msdn.microsoft.com/en-us/data/dn456835.aspx)实施了一个策略。
以下是我的问题:
我们需要确保我们的组件(使用 WebClient ,raw ADO.NET ...)能够以可维护的方式正确运行。
答案 0 :(得分:5)
我已经读过Azure服务的“瞬态故障处理”(TFH) (ServiceBus,FileStorage ...)现在已完全管理。现在好像在那里 在客户端没有什么可以实现的。
这不正确。该服务本身不会处理瞬态错误。客户有责任处理瞬态错误。如果您查看Storage Client Library(> =版本2.0),您将在那里找到重试策略,您可以使用该策略指示客户端代码处理瞬态错误。
现在回答你的问题:
是否有必要在ServiceBus和FileStorage上使用Azure SDK 受益于现在在Azure上实施的策略?
当然没有必要使用SDK来处理瞬态错误,但它们可以使您的工作更轻松。 SDK提供了各种方法来处理瞬态错误(此外,您可以扩展SDK中可用的功能以提出您自己的瞬态处理策略)。详细说明一下,让我们考虑一下Storage Client库,它是Azure Storage REST API的包装器。现在,此库已定义哪些错误应被视为瞬态(HTTP状态代码500+)以及哪些错误不应视为瞬态(HTTP状态代码400-499)。此外,它还带有不同类型的重试逻辑 - 指数(默认),线性或无。作为开发人员,您可以决定在出现瞬态错误时应使用哪种重试逻辑并将其烘焙到您的代码中。如果您没有使用这些SDK,那么一切都需要由您从错误应该被视为瞬态以及如何实现重试开始。 SDK只会让您的工作更轻松。
在使用某些东西访问数据时如何管理TFH 那不是EF?
如果您正在使用ADO.Net并且遇到异常,那么您可以查看服务返回的ErrorCode
并确定错误是否是暂时的。有关SQL错误代码的列表,请参阅此链接:https://azure.microsoft.com/en-in/documentation/articles/sql-database-develop-error-messages/。我还强烈建议您阅读本文以及如何实施自己的TFH:https://azure.microsoft.com/en-in/documentation/articles/sql-database-connectivity-issues/。