在 Service Fabric 应用程序中动态创建服务

2024-05-18

这有点描述性,所以请耐心等待。 :)

在我尝试构建的应用程序中,产品具有独特的功能。用户可以选择选择功能 A、B、D,但不能选择 C。我构建此功能的方式是,每个不同的功能都是一个服务(无状态,我正在考虑将数据存储在 Azure SQL 中)数据库并从每个服务公开 REST API)。将所有服务捆绑在一起的是一个应用程序类型。对于创建的每个客户租户(将其视为一组用户的共享帐户),我正在考虑使用 TenantManagementService 创建注册的 ApplicationType 的新具体实例并调用client.ApplicationManager.CreateApplicationAsync() on a FabricClient实例,以便我可以在我的节点上为该租户运行一个专用的应用程序实例。但是,正如我所提到的,租户可以选择仅选择映射到服务子集的特定功能。如果租户仅选择我的应用程序的服务 A,则与功能 B、C、D 对应的其余服务实例不应在节点上空闲运行。

我想过为每个服务创建参与者,但我创建的服务是无状态的,我希望它们的多个实例在多个节点上主动运行以实现负载平衡,而不是拥有有状态服务的空闲副本。

与我对应用程序类型所做的操作类似,即在新租户注册时生成应用程序类型,当租户想要选择加入/退出产品功能时,我可以生成/删除服务吗?

这是我尝试过的: 我尝试设置InstanceCount0 用于打包我的应用程序时的服务。在我的ApplicationParametersXML 文件:

<Parameters>
    <Parameter Name="FeatureAService_InstanceCount" Value="0" />
    <Parameter Name="FeatureBService_InstanceCount" Value="0" />
</Parameters>

However, Service Fabric Explorer cribs when instantiating the application out of such application type. The error is this: zero service instance count error

But on the other hand, when a service is deployed on the fabric, it gives me an option to delete it specifically, so this scenario should be valid. enter image description here

欢迎任何建议!

编辑:我的要求类似于 anderso 在这里提到的方法 -https://stackoverflow.com/a/35248349/1842699 https://stackoverflow.com/a/35248349/1842699,但是,我特别要解决的问题是上传创建一个应用程序实例,其中一个或多个打包服务的实例数为零!


@uplnCloud

我希望我理解一切正确。

您的情况如下:

  • 每个客户应该有单独的应用程序(从相同的应用程序创建)ApplicationType).
  • 每个客户应该只有服务的子集(定义在ApplicationType).

如果我做对了,那么这是开箱即用的支持。

首先你应该删除<DefaultServices />部分来自ApplicationManifest.xml。这将指示 Service Fabric 不要使用应用程序自动创建服务。

现在算法如下:

  1. 使用创建应用程序FabricClient.ApplicationManager.CreateApplicationAsync()
  2. 对于每个必需的功能,使用以下命令创建一个新的相应服务FabricClient.ServiceManager.CreateServiceAsync()(需要指定新创建的Application的Application名称)

另请注意CreateServiceAsync()接受服务描述符 https://learn.microsoft.com/en-us/dotnet/api/system.fabric.description.servicedescription?view=azure-dotnet您可以配置所有与服务相关的参数 - 从分区架构开始到实例计数结束。

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

在 Service Fabric 应用程序中动态创建服务 的相关文章

随机推荐

  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 为什么我无法将 $location 注入到我的 config() 中?

    为什么这会给我一个错误 angular module app config function routeProvider locationProvider httpProvider location 未捕获的错误 未知的提供商 来自应用程序
  • 语法错误:意外的标记“?”在 repl.it 上用 JavaScript 制作不和谐机器人时 [重复]

    这个问题在这里已经有答案了 我收到错误 const token this client token this client accessToken SyntaxError Unexpected token Discord 机器人代码 con
  • XSL字符串多重替换功能

    如何让这个函数进行多重替换 经验 替换aaa with 111并替换bbb with 222 etc
  • 如何在画布上所有其他内容后面绘制图像? [复制]

    这个问题在这里已经有答案了 我有一块画布 我想用drawImage在画布上当前内容后面绘制图像 由于画布上已经有内容 我正在使用字面上的画布来创建包含图像的画布 因此我无法真正先绘制图像 所以我无法使用drawImage在我呈现其余内容之前
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • CSS 精灵按钮

    这些精灵按钮让我抓狂 我几乎可以让他们工作 但不完全是 我正在玩这个非常简单的精灵图像 我有一个 jsfiddle 项目 gt gt 这里 如果你想看的话 但如果你只想看一下 代码就在下面 http jsfiddle net jp2code
  • Android AdMob:addView 在返回活动之前不会显示广告

    我正在尝试在游戏顶部添加横幅广告 我的活动使用带有自定义 SurfaceView 的relativelayout 我希望广告与 SurfaceView 重叠 广告会加载并可点击 但不会绘制到屏幕上 当我离开活动并返回时 会绘制广告 例如 通
  • 在R中循环子文件夹

    我正在 R 环境中包含多个子文件夹的文件夹中工作 我想要循环遍历多个子文件夹 然后在每个子文件夹中调用 R 脚本来执行 我想出了下面的代码 但我的代码似乎添加了 到子文件夹列表 我收到错误 文件中的错误 文件名 r 编码 编码 无效的 描述
  • 警告:无法更改每个人的权限:

    当运行 Java 快速入门示例时https developers google com drive web quickstart java hl hu https developers google com drive web quicks
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • 如何简化这个 LESS CSS Box-shadow mixin? (带有“方向”的多个阴影)

    如何减少这段代码 可能使用循环 以拥有一个接受方向和数字的 函数 dir 想要的 方向 number 我需要多少次影子 这里是10次 color 阴影的颜色 Example 可以工作 但不是很容易使用 perspective box dir
  • 在 Android 手机中通过耳机插孔发送数据

    我目前正在处理一个新项目 我必须通过具有特定电压的耳机插孔发送数据 然后我可以在该电压上工作 所以这里我需要根据我的数据来编程具体电压 我是否可以在android中访问耳机的输出电压 然后创建一个应用程序来控制该电压 这是一篇讨论此问题的
  • 公共方法与公共 API

    在干净的代码书中 有一个观点是 公共 API 中的 Javadocs 同样 Effective java 一书也有这样的内容 项目 56 为所有公开的 API 元素编写文档注释 所以这就是我的问题 所有公共方法都被视为公共 API 吗 它们
  • 谷歌日历手表过期时间超过1个月怎么办?

    我将我的 CRM 系统与 Google 日历同步 为此 我要求push notifications从我的用户 Google 日历到我的系统 我已经成功创建了手表 并将过期时间设置为2030年 但是当我收到手表事件的响应时 它显示手表的过期时
  • 使用 DataBindingComponent 的 Inflate 方法

    当 Glide 成功渲染图像后 我在更新文本视图时看到此错误 致命异常 java lang IllegalStateException 必需 CustomBinding 类中的 DataBindingComponent 为 null 绑定适
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 如何重复 ajax 请求,直到满足 RxJS Observable 的条件?

    我正在尝试重复请求 直到响应包含使用 RxJS 的数据 此时我想调用成功 或失败 处理程序 但我在使用 RxJS 时遇到了麻烦 这是我目前的方法 redux observable action observable mergeMap gt
  • 在 Service Fabric 应用程序中动态创建服务

    这有点描述性 所以请耐心等待 在我尝试构建的应用程序中 产品具有独特的功能 用户可以选择选择功能 A B D 但不能选择 C 我构建此功能的方式是 每个不同的功能都是一个服务 无状态 我正在考虑将数据存储在 Azure SQL 中 数据库并