c# - 在服务结构的不同端口上运行的多个红隼无状态服务实例
问题描述
我使用示例默认值在 Visual Studio 2019 中创建了一个无状态服务(创建新项目 -> Service Fabric 应用程序 -> 命名项目和解决方案 -> 无状态 ASP.NET Core 服务)。
运行没有任何更改的天气预报应用程序工作正常,我可以看到该应用程序在 Service Fabric 资源管理器中运行,并看到我的 5 个健康(本地开发)节点和 1 个绿色应用程序。
如果我修改Local.5Node.xml
以将 InstanceCount 从 1 更改为 -1
<?xml version="1.0" encoding="utf-8"?>
<Application xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="fabric:/SampleApp" xmlns="http://schemas.microsoft.com/2011/01/fabric">
<Parameters>
<Parameter Name="SampleApp_ASPNETCORE_ENVIRONMENT" Value="Development" />
<Parameter Name="SampleApp_InstanceCount" Value="-1" />
</Parameters>
</Application>
我可以看到在单个分区下创建了五个实例,但其中四个被困在“InBuild”中:
在我在 VS2019 中运行的应用程序中,诊断窗口显示进程不断无法启动:
经过进一步检查,我发现新实例正试图在同一个端口上启动。
端口分配如何在具有多个无状态 Web 服务实例的 Service Fabric 中工作?是否需要带有反向代理的网关来发现每个实例?在没有自定义解决方案的情况下,是否可以在 Service Fabric 中自动缩放无状态 Web 服务?
解决方案
推荐阅读
- laravel - 正确删除相关模型
- selenium - 如何使用失败测试的方法名称获取失败测试的屏幕截图
- android - 在 Kotlin 中进行单元测试的 BuildConfigField 模拟
- android - 微调器背景在 Android 6.0+ 上不正确
- reactjs - 如何在 React 中编写复杂的渲染循环?
- winapi - I/O 完成端口出列顺序
- c++ - MFC 在执行自定义验证之前初始化日期时间选择器控件
- python - Kivy - 类似于 Excel 的 TextInput 行为
- android - 在 Application 类中关闭 DBHelper
- python - 如何根据另一个数据框从一个数据框中获取行?