代码之家  ›  专栏  ›  技术社区  ›  redgiant

旋转密钥无故障生效所需的最低限度的CosmosClient和AppDomain使用量

  •  0
  • redgiant  · 技术社区  · 3 年前

    我使用了一个单例的CosmosClient,假设我已经在运行我的服务并在许多请求线程中使用我的客户端时,我想切换到另一个旋转键。我不想重新启动我的服务或故障转移到另一个区域,我希望同一个服务实例继续为请求提供服务,而不会出现不必要的失败(除了可能发出“Unauth”请求,该使用“其他”CosmosClient并重试)。

    我至少要做什么才能保证具有新连接字符串信誉的新客户端能够正确使用,而不会出现“意外”,比如在客户端SDK自行清理之前出现一段时间的故障?

    AppDomain隔离是实现这一点的方法吗?

    我是否需要两个子AppDomains来隔离主键和次密钥单例客户端?我的假设是,如果我在默认的AppDomain中尝试所有这些,客户端SDK状态将不会很好。我会有一个ConnectionSwitcher来包装域选择和请求封送,并根据发现的未经授权的故障来知道当前要使用哪个AppDomain,以知道是否尝试使用另一个。

    有没有更好的方法不涉及AppDomains和代理、复制和性能开销,但在CosmosClients之间切换很好(这样旧的无效客户端就不会持续使用一段时间了)?或者是已经提供此功能的预制客户端库?

    0 回复  |  直到 3 年前