引用多个外部 Web API 的单个 Service Fabric 应用程序

2024-04-24

我的问题是有点相似 to 这个问题 https://stackoverflow.com/questions/37567644/design-of-application-in-azure-service-fabric,但答案并没有真正帮助我,除非我错过了一些东西。

如果我想将 10 多个无状态服务(基于 OWIN 的 Web API)部署到 Service Fabric 集群中,根据我对 ASF 的理解,我会:

  1. 在 Visual Studio 中创建一个新的 Service Fabric 应用程序(将其命名为“MyBackendServices”)
  2. 创建 10+ 无状态 Web API
  3. 将它们添加到 Service Fabric 应用程序
  4. 部署到集群。

但这是否会涉及在与 Service Fabric 应用程序相同的 Visual Studio 解决方案中创建所有 Web API?

我担心的是,如果我们希望团队完全自治,那么理想情况下他们不需要共享相同的 Visual Studio 解决方案?

目前,每个“团队”都有自己的 GitHub 存储库和 Visual Studio 解决方案,并且每个 API 都是独立部署的。

我希望将此设置移植到 ASF,其中每个 Web API 都是它自己的解决方案,并且它们以某种方式打包到一个 Service Fabric 应用程序中。

谁可以帮我这个事?

Thanks


我将每个服务保留在其自己的解决方案(和存储库)中,并仅在部署时将其整合到单个应用程序中。构建和部署通过 PowerShell 进行,可以作为 CI/CD 过程的一部分触发。仅修改更新的服务,并且我让它使用当前日期/时间自动更新清单版本。

对于具有其他服务依赖项的服务,我在解决方案中引用了他们的项目,以便我可以轻松调试,但仅部署主要服务。

为答案添加更多细节,评论区太小。

我创建了一个目录,将发行版本放置在正确的 SF 目录结构中。我将发布的 ApplicationManifest.xml 复制到该目录,但您可以将其作为存储库并仅签入该文件。我有一个 buildrelease.ps1,它枚举存储库并运行 msbuild 以进行发布配置。对于该配置,除了要部署的服务之外,我不构建任何内容(没有单元测试或其他用于调试目的的测试应用程序)。该版本是根据日期和时间自动生成的,例如2017_05_31_1702。这是服务清单中更新的内容,并最终在应用程序清单中更新的内容。成功构建后,服务清单将更新回解决方案目录,如下所示:

    $serviceManifestPath = "$solutionDir\src\${ServiceName}Service\PackageRoot\ServiceManifest.xml"
Set-ItemProperty $serviceManifestPath -name IsReadOnly -value $false

$serviceManifestXml = [xml](Get-Content $serviceManifestPath)
$ns = New-Object System.Xml.XmlNamespaceManager($serviceManifestXml.NameTable)
$ns.AddNamespace("ns", $serviceManifestXml.DocumentElement.NamespaceURI)

$serviceManifestXml.ServiceManifest.Version = $NewVersion
$serviceManifestXml.ServiceManifest.CodePackage.Version = $NewVersion
$serviceManifestXml.ServiceManifest.ConfigPackage.Version = $NewVersion
$serviceManifestXml.Save($serviceManifestPath)

接下来再次调用 msbuild 来打包 SFProj。

$buildResult = & $msBuild $sfproj /p:Configuration=Release /nologo /v:M /fl /flp:LogFile="msbuild.log;Verbosity=Normal" /nr:false /target:package

今天我只构建具有修改后的服务清单的服务,因此您必须记住在修改代码/配置时修改清单。我想改进一下,只是时间不够。

打包后,将解决方案的release{服务名称}Service.pkg复制到release文件夹中。脚本完成后,生成的目录将以正确的格式包含所有已更改的服务。

下一个脚本是每个集群的部署脚本。我确信可以创建一个数据驱动的系统。这将连接到远程集群,测试包,将包上传到映像存储,并根据应用程序是否已存在进行新的或升级。我有一个可以部署到我的一体机的版本,这样我就可以使用本地配置来测试/调试一起运行的所有服务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

引用多个外部 Web API 的单个 Service Fabric 应用程序 的相关文章

  • 使用 MSI 从本地 Service Fabric 群集访问 Key Vault

    我想通过托管服务身份 MSI 从 Service Fabric 应用程序访问 Key Vault 我已在 Azure 门户中的虚拟机规模集上启用 MSI 并授予其对我的 Key Vault 资源的访问权限 这就像云端的魅力一样 但是 我的本
  • 将 Application Insight 添加到现有的 Azure Service Fabric 群集

    自过去 4 个月以来 我们一直在开发 Azure Service Fabric 但现在决定拥有一个统一的日志基础设施 我们正在使用 AppInsight 我们如何将 AppInsight 密钥添加到现有的 Service Fabric 集群
  • 部署期间 Azure 中的 Service Fabric 错误

    将集群部署到 Azure 时遇到问题 一切都在本地运行 但是当部署到 Azure 时 我在尝试调用其中一项服务时收到错误 在 Azure 中 服务结构是6 1 480 9494 并且无法升级 但我的本地版本是6 2 262 94946天前发
  • 订阅 Service Fabric 群集级别事件

    我正在尝试创建一项服务 该服务将为在我的 Service Fabric 集群中运行的应用程序更新服务端点的外部列表 基本上 我需要在本地 F5 负载均衡器中复制 Azure 负载均衡器 在上个月的 Service Fabric 问答中 团队
  • Actor 方法启动/停止日志 |添加附加信息

    对于 azure actor 服务 Actor Method Start Stop 会记录在 诊断 窗口中 如下所示 如何在每次调用方法时添加一些额外的详细信息 例如 Correlation Id Timestamp 2016 09 14T
  • Service Fabric 默认发布配置文件而不是 Local.xml

    我们公司正在使用 Service Fabric 开发新应用程序 我们遇到的一个常见问题是 多个开发人员使用远程服务器上的队列 数据库 存储 每个开发人员对此都有不同的配置 所有设置都存储在每个环境的 ApplicationParameter
  • 如何枚举所有分区并聚合结果

    我有一个多分区的有状态服务 我怎样才能枚举它的所有分区和聚合结果 使用服务远程处理用于客户端和服务之间的通信 您可以使用枚举分区FabricClient var serviceName new Uri fabric MyApp MyServ
  • 使用 ServicePartitionClient 对服务结构 StatelessService 进行负载平衡

    我正在 Service Fabric 集群上实现 API 网关 其中 API 网关服务是将外部 HTTP 请求路由到集群中运行的一组辅助服务的公共端点 对于网关和内部服务之间的服务间通信 我们使用 ServicePartitionClien
  • Service Fabric:是否可以同时运行 Linux 和 Windows 节点

    是否可以在 Azure Service Fabric 上的同一群集中同时运行 Linux 和 Windows 节点 不 目前这是不可能的
  • 在生产 Azure Service Fabric 群集中找不到 libsodium-64.dll

    在 Azure Service Fabric 可靠服务中使用 libsodium net 来发挥其所有安全优势 在我的本地开发集群上 一切都工作正常 尽管我必须将 libsodium 64 dll 设置为复制到输出目录 不幸的是 当部署到
  • 使用 Azure Service Fabric 部署的微服务的 API 网关/代理模式

    观看 Azure Service Fabric 的 BUILD 会议视频后 我一直在想象它如何适合我们当前基于微服务的架构 然而 有一件事我并不完全确定如何解决 API 网关 代理 考虑一个不那么简单的微服务架构 其中有 N 个服务在公开
  • 服务结构具有 100 万个键的可靠字典性能

    我正在使用包含约 100 万个键的可靠字典来评估 Service Fabric 的性能 我得到的结果相当令人失望 所以我想检查我的代码或我的期望是否错误 我有一本初始化的字典dict await stateManager GetOrAddA
  • Service-Fabric 绑定到多个端点

    是否可以绑定服务结构应用程序来侦听多个端口 基本上 我试图拥有一个面向公众的服务 它侦听 http 80 和 https 443 并将任何 http 请求重定向到 https 我创建了一个新的 ASP net Core 服务 它单独工作正常
  • dotnetcore 中的服务结构客户端身份验证 UserPasswordCredential 不起作用

    我正在 aspnetcore dotnetcore2 0 应用程序中构建一个小型服务结构维护 但现在无法识别 UserPasswordCredential 类 从here https github com AzureAD azure act
  • 动态 Servicefabric 设置和覆盖

    有没有办法完全不告诉服务有关设置 而只在应用程序级别提供它们 我仍然对 servicefabric 配置的工作方式不满意 据我所知 我必须在服务的 settings xml 中指定所有可能的配置值 然后我可以覆盖应用程序的 Applicat
  • 将 Service Fabric 应用程序发布到 Azure 时操作超时

    当我尝试将 Service Fabric 应用程序发布到 Azure 群集时 收到以下错误消息 3 gt Copy ServiceFabricApplicationPackage Operation timed out 3 gt At C
  • Service Fabric 本地集群设置错误

    点击下面的链接来设置和运行本地集群 https learn microsoft com en us azure service fabric service fabric create your first application in v
  • Service Fabric:服务之间的调用有延迟?

    我们正在开发一个由多个不同服务组成的服务结构应用程序 我们的应用程序工作方式的一个关键部分是这些服务需要大量相互调用 直到最近我们增加了应用程序的负载并发现它的速度大大减慢时 我们才遇到任何问题 经过大量调查和对各种事情进行计时后 我们发现
  • 应用洞察和服务结构?

    I found this https stackoverflow com questions 37348793 application insights in service fabric几个月前有关 Application Insight
  • Service Fabric 有状态服务远程处理 V2

    我有一个由无状态服务调用的有状态服务 在 Visual Studio 15 4 上运行的 Net Standard Asp net Core 2 0 中 我无法使 Service Remoting V2 工作 适用于 V1 的有状态服务中的

随机推荐