我目前一直在研究它提供的IConfigurationRefresher
功能、方法SetDirty()
和方法。RefreshAsync()
这是我正在使用的主要代码,当调用某个 API 端点时,它当前正在刷新 FeatureManagement 包的缓存:
Log.Logger.Information($"Refreshing app config.");
_refresher.SetDirty(TimeSpan.FromSeconds(0));
await _refresher.RefreshAsync();
这在使用服务/应用程序的单个托管实例时非常有用,但是当通过 Web 场中的负载均衡器或在具有多个 pod 的 Kubernetes 集群中存在多个应用程序可用时,此功能将如何工作?
我的另一个问题是,缓存是本地保存在消费服务的内存中,还是分布并缓存在应用程序配置本身中?
设想:
如果发生对 Application1 的请求,则刷新内部缓存。如果通过 SDK 从 Azure 应用配置中检索到任何配置/功能标志,会发生什么情况?由于缓存刷新,某些调用是否具有更新的值,而对第二个应用程序的调用包含过期值?