如何指定本地开发人员的 Service Fabric 集群的创建位置?

Posted

技术标签:

【中文标题】如何指定本地开发人员的 Service Fabric 集群的创建位置?【英文标题】:How can I specify where my local developer's service fabric cluster is created? 【发布时间】:2016-04-29 19:36:27 【问题描述】:

我的问题:我正在学习 Service Fabric,并且正在做简单的教程,而本地集群正在填满我的 C 盘。我在 Visual Studio 中运行项目。它首先在文件夹 SfDevCluster 中创建一个集群。这占用了 842 MB 的空间。然后它会部署服务和 Web api 站点。请记住,这些都是微不足道的教程,其中几乎没有任何内容。现在,我注意到我有一个大小为 1.22 TB 且磁盘大小为 9.4 GB 的文件夹。我不确定如何解释。但它会占用我 C 盘上的剩余空间并引发警报。 我还有其他空间很大的驱动器。我很想指定使用这些。有没有办法使用 Visual Studio 使用的服务结构集群来做到这一点?或者有没有办法限制过于雄心勃勃的大小分配?如果你理解这一点,你能解释一下这些不寻常的文件夹大小是什么意思吗? 在过去,我会拥有一个空间很大的硬盘。但是现在,我的开发机器有一个更快但更昂贵的 SSD 驱动器,而且空间非常宝贵。所以我需要更多地控制集群位置。

【问题讨论】:

我已经尝试过露水选项(也想避免它吃掉我的 SSD),我发现最好的选择是使用目录符号链接 (mklink /D) 【参考方案1】:

您可以通过在 PowerShell 中运行 DevClusterSetup 脚本来设置指向非系统驱动器的本地集群。您可以在%programfiles%\Microsoft SDKs\Service Fabric\ClusterSetup\ 下找到该脚本。你想要的命令行是:

.\DevClusterSetup.ps1 -PathToClusterDataRoot <desired_app_and_data_location> -PathToClusterLogRoot <desired_tracelog_location>

如果您已经有一个正在运行的集群,此脚本将删除它并创建一个新的(请注意,这将删除所有已部署的应用程序及其数据)。运行新集群后,Visual Studio 将在您本地部署时自动使用它。

至于文件大小 - 这主要是由于用于复制存储在可靠集合中的状态的日志文件。一个大的 sparse file 是预先分配的,这就是为什么您会看到磁盘上的大小和大小之间存在差异的原因。我们计划使这些值可配置,以便它们可以在本地集群上拨号。

【讨论】:

只是为了帮助刚刚做过我所做的任何人,这需要以管理员身份在 x64 powershell 中运行 工作正常,但最终会变回默认文件夹。为什么? 我也将它重置回我的 C 盘,@RaulKist。这是因为我使用 Service Fabric 本地集群管理器(即您可以右键单击任务栏中的圆圈)来重置,而不是上面的脚本,我想。因此,无论何时重置,都应始终使用上述命令。 @rrreee,我使用了脚本 :( 也许他们修复了它。我应该再试一次。 查看以下内容以解决路径重置问题:***.com/a/46294380/1964969【参考方案2】:

在 Service Fabric SDK 文件夹 (C:\Program Files\Microsoft SDKs\ServiceFabric) 中,您将找到一个 ClusterSetup 文件夹。

在那里,您将找到用于本地集群不同配置的 ClusterManifestTemplate.json 文件。这些是创建和管理本地服务结构集群的 powershell 脚本使用的 json 配置文件。

在这些文件的底部,在“fabricSettings”中,它根据“%systemDrive%”设置 FabricDataRoot 和 FabricLogRoot 的值。如果您将其替换为“D:”,它应该会在 D 驱动器上生成一个本地集群。

进行这些更改后,我停止了本地结构,从 C 驱动器中删除了当前的结构文件夹,然后重新启动了我的机器。然后当我在 VS.2017 中启动调试会话时,它会在我的 D 驱动器上创建本地开发结构并将应用程序部署到该位置。 (我确实注意到在我的 C 盘上创建了一些空文件夹,但没有使用。)

【讨论】:

是的。它在 2021 年仍然有效。请注意,有 1 节点和 5 节点 json 文件需要更新。【参考方案3】:

您还可以做的是偶尔重置本地集群。

可以使用Service Fabric Local Cluster Manager 应用程序轻松完成:

【讨论】:

以上是关于如何指定本地开发人员的 Service Fabric 集群的创建位置?的主要内容,如果未能解决你的问题,请参考以下文章

K8S集群内Pod如何与本地网络打通实现debug

问下啊 本地测试的web-service能正常使用 但放到服务器运行 web-service 就返回 “无法连接到远程服务器”

如何使用 SQL 开发人员将任何文件从本地机器上传到数据库服务器文件系统

iOS Signer Service v2.0 发布,支持免费开发人员帐户自签

iOS Signer Service v2.0 发布,支持免费开发人员帐户自签

如何调用web service接口的某个方法