.net - 用于多个分布式 .net 服务的单一集中配置设置存储
问题描述
目标:我们的应用程序由分布在多个服务器上的微服务架构组成(使用本地 Service Fabric 构建)。我们希望有一个集中的地方来存储配置设置,如连接字符串、入口点等。此设置不会因一个服务实例而异,这意味着我们不必将它与服务一起存储,而是更喜欢有一个集中存储,可以在其中动态更新此设置,并由所有服务获取而无需重新部署。编辑此设置的用户友好界面很不错,但不是很有必要,我们可以在最坏的情况下使用简单的记事本。存储设置的格式可以是 xml、json 或任何其他支持分层数据结构的格式。
问题:Service Fabric 是否提供了一些开箱即用的东西来帮助我们?如果没有,是否有任何第三方 .net 工具,或者我们必须从头开始构建“存储、存储库和 api”?
我试着搜索了一些这样的框架,但在市场上没有找到任何东西,在 SF 中也没有找到,也许我只是知道这种东西是如何命名的。
解决方案
您正在寻找的是配置服务,互联网上有很多可以使用的解决方案,您有几个选择:
使用云解决方案,如Azure KeyVault,在这种情况下,您只需将身份验证详细信息添加到每个环境的服务中,并且所有服务都指向同一个 KeyVault 命名空间。
使用本地解决方案,例如HashiCorp Vault或Consul,在这种情况下,您可以将它部署到您的集群并配置您的服务以与之通信
创建您自己的,您将在其中创建作为服务结构服务,沿您的服务部署。老实说,我不推荐这种方法,除非其他服务不提供您的解决方案所需的功能,老实说认为它们非常完整。
还有其他解决方案,但它们几乎都基于这些方法。
关于 Service Fabric 内置解决方案,目前作为 Service Fabric 的一部分没有开箱即用的秘密管理,但路线图中有一个选项,但可能要等到明年 Service Fabric Mesh 发布后才会发布。
推荐阅读
- c++ - 如果用户输入 0 或更少,如何同时显示输出和结束程序
- php - 列出工资覆盖日期 PHP
- git - 为什么每次我拉到我的虚拟主机时 git 都会进行合并?
- ruby - 为什么我收到 502 Bad Gateway nginx/1.18.0 - Elastic Beanstalk 上的 Rails 应用程序
- android - 在 android 中使用 Work Manager API 的定期任务
- python - 将文本文件中的矩阵解析为python中的实际(基于数组的)矩阵?
- c# - 我正在使用 Xamarin Shell,但有时我也想在没有 Shell 的情况下打开页面。我怎样才能做到这一点?
- javascript - 如何为数组中的对象应用新类?
- c++ - 如何使用 cmake 将第三方静态库链接到 mysql-server 8.0(出现错误:使用 -fPIC 重新编译)
- flutter - Flutter Forms:多个小部件使用相同的 GlobalKey