标签: service-fabric-stateful

Microsoft Service Fabric 有状态服务无法启动

突然间,我的本地 Service Fabric 无法启动有状态服务。我试图卸载 SDK,但没有成功。相同的服务在 Azure 群集上运行良好。

连visual studio中的quickstart服务都启动不了

服务状态:fabric:/testapp/Stateful1 未准备好,剩余 1 个分区。

服务状态:fabric:/testapp/Stateful1 未准备好,剩余 1 个分区。

花费的时间太长,应用程序仍未准备好。已完成执行脚本“Get-ServiceFabricApplicationStatus”。已用时间:00:01:41.7659838


来自 Service Fabric Explorer 的错误:错误事件:SourceId='System.FM',Property='State'。分区低于目标副本或实例数。

.net c# azure azure-service-fabric service-fabric-stateful

4
推荐指数
1
解决办法
2763
查看次数

Service Fabric ReliableCollections 中是否有既定的分页模式

在可靠的集合(特别是 IReliableDictionary)中,实现“常见”查询的一种方法是更新辅助字典,该字典构造要在枚举中以特定方式排序的键。对于大型数据集,我希望避免在.

为了实现这一点,我想实现某种延续令牌,调用者可以在请求数据时提供给我。我目前正在通过首先生成有序枚举并返回前 n 个项目来实现这一点,其中 n = MAX_PAGE 大小。 延续本质上是该 n 项列表中的最后一个键。下次调用者传入 continuation 标记时,我会生成有序的枚举,并使用过滤器函数指定键应大于 continuation

这有两个问题(我可以看到):

  1. 集合可以当主叫用户第一次请求一个页面,后续请求之间变化。我不确定我是否可以避免,因为无论谁试图翻阅数据,都需要能够随时更新集合。
  2. 我不确定如何使用过滤器功能。我认为由于开发人员可以过滤任何内容,因此GetEnumerableAsync() 方法必须在返回 enumerable 之前提供字典中的所有键。对于足够大的数据集,这似乎很慢。

是否有任何规定的方法来分页数据? 我开始觉得对于我的一些用例,我可能会用 Reliable Collections 挑错树。

azure microservices azure-service-fabric service-fabric-stateful

4
推荐指数
1
解决办法
692
查看次数

何时或什么是在Service Fabric中覆盖无状态服务的RunAsync方法的最佳用途

我一直在使用无状态服务编程模型,但我没有真正重写RunAsync方法来运行应用程序逻辑.你什么时候会覆盖这个方法?

azure-service-fabric service-fabric-stateful

2
推荐指数
1
解决办法
1149
查看次数

Service Fabric-将List <T>存储在StateManager中以提供可靠的参与者

我的一个用例要求从单个事件产生器存储“开始”和“停止”事件之间的所有事件。我们将使用可靠的参与者来处理此数据,并在收到“停止”事件后进行汇总。在列表类型中,直接存储开始和停止之间的所有事件的简单方法。

// Init
var evts = new List<DataEvent>();
this.StateManager.TryAddStateAsync("events", evts);

// Fetch, add and save
var evts = this.StateManager.TryGetStateAsync<List<DataEvent>>("events");
evts.Add(newEvent);
this.StateManager.TrySaveStateAsync("events", evts);
Run Code Online (Sandbox Code Playgroud)

根据我的理解,每次获取现有列表时,添加一个新项目并存储新的更新列表,StateManager将序列化/反序列化整个数组。我的理解正确吗?

什么是该解决方案的好选择?

c# azure-service-fabric service-fabric-stateful service-fabric-actor

2
推荐指数
1
解决办法
1647
查看次数

Service Fabric中无状态服务的服务解析器

每当我尝试为无状态服务解析端点时,我似乎都会一直收到"未找到服务".我已经尝试使用服务分区解析器和服务代理,但它们都产生相同的结果.是否对Service Fabric有限制,或者我误解了应该如何使用无状态服务?我找不到任何文件说明任何一种方式.

详细说明我试图做的事情.我正在构建一个Api网关.Api网关由RegistryService和RoutingService组成.

我有多个服务结构应用程序,其中一些具有使用WebApi和Owin的"前端"无状态服务.在启动时,这些服务将其路由注册到RegistryService.

Gateway使用Registryservices来确定将请求定向到的服务.此时我正在尝试解决所述服务的端点但未能这样做.但是,如果我将路由更改为有状态后端服务,它可以正常工作.

任何想法都会非常有帮助

c# service asp.net-web-api azure-service-fabric service-fabric-stateful

1
推荐指数
1
解决办法
1933
查看次数