问题标签 [service-fabric-stateless]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1445 浏览

azure-service-fabric - 本地服务结构:分区低于目标副本或实例计数

我的本地群集上的本地 Service Fabric 出现错误。我在我的一项无状态服务的 Service Fabric Explorer Web 门户中看到它。我在应用程序中找不到任何异常,我的磁盘没有内存不足。我还尝试在 C:\SfDevCluster\Log\Traces 中查找一些日志,但我看不到任何与此相关的错误。什么可能是来源以及在哪里寻找解决方案?

0 投票
1 回答
23 浏览

azure-service-fabric - 有没有办法在服务结构集群的给定节点上共同部署一组无状态服务?

这是场景:

  1. 我有无状态服务 A、B、C 和 D。
  2. 我想将上述服务部署到一个 5 节点服务结构集群中。
  3. 我希望每个服务只有 3 个实例。(我知道该怎么做)。
  4. 我需要始终在给定节点上同时部署服务 A 和 C。(边车模式)。
  5. 我不关心哪个特定节点可以同时具有 A 和 C,只是它们需要在一起。

有没有办法在服务结构集群中做到这一点?如果是这样,怎么做?一旦自动化,我不想在知道它们总是一起部署之后再考虑它。但是,我应该能够独立部署 A 或 C。

0 投票
1 回答
9542 浏览

service-fabric-stateless - 如何重新启动 Service Fabric 应用程序

我有一个运行无状态 Service Fabric 应用程序的 gMSA 服务帐户。该帐户最近已作为成员添加到新的安全组。我们没有看到该应用程序正在运行,我认为这是因为用户声明是在应用程序启动时加载的。我已经看到要让它在 Windows 服务上工作,我们需要重新启动服务(mmc-> 服务,右键单击重新启动)。我想在 Service Fabric 中做类似的事情。

我看到了重新启动节点的选项,但这是一种比我想要使用的更严厉的方法。这是在生产中,我想确定问题的解决方案。该节点上的其他应用程序没有问题,因此我宁愿不要将它们关闭。

Service Fabric 停用(暂停)与停用(重新启动)?

在此先感谢,格雷格

0 投票
1 回答
408 浏览

azure-service-fabric - 为 Service Fabric 本地群集启用 ResourceMonitorService 插件失败

我正在尝试为我的本地计算机上的 Service Fabric 群集启用资源监视器服务插件,如下所述:

https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-autoscaling#auto-scaling-based-on-resources

我将值添加到 json,但是当我尝试重置集群时,它失败并出现以下错误:

我有点卡在这一点上。我找不到有关枚举的任何信息或插件的有效值。

这是 json 部分的片段:

0 投票
1 回答
144 浏览

azure-service-fabric - 如何监听 Service Fabric 中的应用程序删除事件?

我在 .NET Framework 的 Azure Service Fabric 中运行无状态服务。如果我的所有应用程序都从我的 Service Fabric 群集中的一个节点中删除,我想执行一些清理活动,并从注册表中删除一些配置。有什么办法可以做到这一点吗?

0 投票
1 回答
42 浏览

azure-service-fabric - 在 Service Fabric 中启动无状态服务期间更改注册表

我正在使用一个在注册表中搜索 dll 的库。可以通过在 Service Fabric 群集中运行 MSI 来安装该 dll,并将设置此路径。

但我想避免在集群中安装 MSI,并在包本身中提供所需的 dll。在服务启动期间,我正在创建注册表项并在我的包中提供 dll 的位置。一切都按预期工作。

这种方法理想吗?我们可以更改注册表吗?如果不是,我们如何解决这个问题?任何指针表示赞赏。

0 投票
1 回答
1000 浏览

azure-service-fabric - 100% cpu 使用情况下 CpuShares 的 Service Fabric 代码包值(最大值)

我有 2 个服务结构应用程序 (sln) 和 3 个服务(3 个代码包)。我想将它们分配在最大 CPU 百分比的 40% 20% 20% 中,而与内核无关,即对 CPU 内核的数量没有限制(当前机器是 4 核逻辑)。根据上面的内容/博客,如果我指定 CpuShares = 512 、 CpuShares = 256 和 CpuShares = 256 ,那么它应该占用 40%、20%、20% 的最大 CPU。但是,情况并非如此,它只允许相应服务的最大 CPU 使用率分别为 5%、2% 和 2%。通过阅读这篇文章(https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-resource-governance)我认为 1024 是 CpuShares 的默认值(最大值),经过大量尝试和错误后,如果我们应用任何大于此值的值,我最终得出 CpuShares 的值 10,000,我们会在服务资源管理器中出现错误,提示 CpuShare 的 Arg 无效。所以考虑到 10,000 = 100% CPU 使用率是允许的。我已将以上 CPU 份额值修改为 CpuShares = 4000、CpuShares = 2000 和 CpuShares = 2000 在测试中我可以看到最大 CPU 百分比使用率,其中 40% 20% 20% (不精确的 5% 方差)。所以问题是我在任何文档中都找不到 10,000 = 100% CPU 使用率值。因此,我想确认这是否正确,如果不正确,那么如何将服务或代码包限制为特定百分比。请对此提供帮助

0 投票
1 回答
196 浏览

service-fabric-stateful - runasync 中的状态管理器并行事务

在服务结构有状态服务中,有 RunAsync(cancellationToken) 和 using() 用于状态管理器事务。

我要重构的遗留代码包含两个队列,在 while(true) 内尝试出队,延迟时间为 1 秒。我想摆脱这种不必要的延迟,而是使用两个不同的反应队列(具有可靠队列的信号量)。

问题是,现在需要将依赖于这两个队列的两个不同的工作流分成两个单独的线程,因为如果这两个队列在单个线程中运行,一个 wait() 将阻止其他代码运行。(我知道最好的做法可能是将这两个任务分成两个微服务,下一个项目。)

我想出了以下代码作为解决方案:

每个任务都包含以下内容:

似乎有效,但我只想确保 using(statemanger.createTansaction()) 可以以这种并行方式使用..

0 投票
1 回答
982 浏览

c# - 如何从 Winform 应用程序调用服务结构服务?

我们有两个 Service Fabric 无状态服务。我们已将 Service Fabric 运行时升级到最新版本,现在想使用最新的 V2(V2_1) 运行时进行通信。我们还将 Service Fabric SDK 升级到了最新版本。

  1. 数学服务。它有两个暴露于通信的端点。
  2. EvilMathTeacherService。它调用这两个端点来做一些事情。它还暴露了一个端点。

这两个服务可以使用最新的 V2(V2_1) 运行时相互通信。我们有另一个应用程序,一个 WinForm 应用程序,它想要调用 EvilMathTeacherService 来让它做一些坏事。问题是当我们使用 V2(V2_1) 运行时从位于结构集群外部的这个 Winform 应用程序调用服务结构服务时,它不起作用。它不做任何事情。

所以我的问题是——我能做些什么来实现它吗?或者在最新的 V2(V2_1) 运行时中是否无法从外部与服务进行通信?我们可以使用 V1 运行时来做到这一点,而且在旧的 V1 运行时中它完全没问题。

代码示例:(相关部分)

服务 1:MathService.cs

服务清单:

服务 2:EvilMathTeacherService.cs

在 RunAsync 方法中:

这是调用 MathService 的 Questionnaire.cs 类

这按预期工作。但是,当我从我的 winform 应用程序对 EvilMathTeacherService 或 MathService 本身进行类似调用时,该调用似乎并没有到达服务。

Winform应用部分:Form1.cs

我从他们的官方文档中关注这个链接- https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-communication-remoting#how-to-use-remoting- v2 堆栈

请指出我在这里遗漏的任何内容。再次断言 - 我在使用 Microsoft.ServiceFabric.Services.Remoting.V2.FabricTransport.Runtime 从结构集群外部的 Winform 应用程序调用服务时遇到问题。

或者这不能再使用 V2 运行时完成?因为我们正在使用 V1 运行时成功地做同样的事情。

示例代码项目:

https://github.com/nirjash13/azure-service-fabric

0 投票
1 回答
308 浏览

service-fabric-stateful - 在服务结构有状态服务(.NET Core 应用程序)中创建远程侦听器时出错

错误:不包含“CreateServiceRemotingListener”的定义,并且找不到接受第一个类型参数的扩展方法“CreateServiceRemotingListener”(您是否缺少 using 指令或程序集引用?)

以下是我遵循的步骤,

  1. 创建了一个实现 IService 的接口。

    `

    `

  2. 在名为 FileService 的有状态服务中包含以下包。

    `

    `

  3. 在 FileService 中实现了 IFileService 接口。

    `

    `