突然间,我的本地 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'。分区低于目标副本或实例数。
在可靠的集合(特别是 IReliableDictionary)中,实现“常见”查询的一种方法是更新辅助字典,该字典构造要在枚举中以特定方式排序的键。对于大型数据集,我希望避免在.
为了实现这一点,我想实现某种延续令牌,调用者可以在请求数据时提供给我。我目前正在通过首先生成有序枚举并返回前 n 个项目来实现这一点,其中 n = MAX_PAGE 大小。 延续本质上是该 n 项列表中的最后一个键。下次调用者传入 continuation 标记时,我会生成有序的枚举,并使用过滤器函数指定键应大于 continuation。
这有两个问题(我可以看到):
是否有任何规定的方法来分页数据? 我开始觉得对于我的一些用例,我可能会用 Reliable Collections 挑错树。
azure microservices azure-service-fabric service-fabric-stateful
我一直在使用无状态服务编程模型,但我没有真正重写RunAsync方法来运行应用程序逻辑.你什么时候会覆盖这个方法?
我的一个用例要求从单个事件产生器存储“开始”和“停止”事件之间的所有事件。我们将使用可靠的参与者来处理此数据,并在收到“停止”事件后进行汇总。在列表类型中,直接存储开始和停止之间的所有事件的简单方法。
// 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
每当我尝试为无状态服务解析端点时,我似乎都会一直收到"未找到服务".我已经尝试使用服务分区解析器和服务代理,但它们都产生相同的结果.是否对Service Fabric有限制,或者我误解了应该如何使用无状态服务?我找不到任何文件说明任何一种方式.
详细说明我试图做的事情.我正在构建一个Api网关.Api网关由RegistryService和RoutingService组成.
我有多个服务结构应用程序,其中一些具有使用WebApi和Owin的"前端"无状态服务.在启动时,这些服务将其路由注册到RegistryService.
Gateway使用Registryservices来确定将请求定向到的服务.此时我正在尝试解决所述服务的端点但未能这样做.但是,如果我将路由更改为有状态后端服务,它可以正常工作.
任何想法都会非常有帮助
c# service asp.net-web-api azure-service-fabric service-fabric-stateful