asp.net - Azure 服务结构 : IReliableQueue

标签 asp.net .net azure-service-fabric

我正在为我们的新服务使用 azure 服务结构。

对于面向客户端的网关,我有一个使用 Web API 端点获取请求的无状态服务,实际工作是使用可靠的无状态参与者完成的。

正如 Sean McKenna - MSFT 所建议的在此 question ,我将传入请求放入 ReliableQueue 并将结果存储在 ReliableDictionary 中。

我不明白如何实现这一点,我在哪里定义 ReliableQueue??很明显(?)在 Web API Controller 上将作业排入队列,但是我在哪里以及何时出列对象?没有事件触发告诉我添加了一个对象?

正如你所看到的,我会喜欢这方面的一些帮助

谢谢

最佳答案

在您提到的问题中,我正在描述 WordCount sample 中显示的模式.

在这种情况下,应用程序由无状态网关服务和有状态处理服务组成。客户端输入被发送到无状态网关,然后中继到有状态服务,在那里它最初保存在 ReliableQueue 中。 .同时,在 RunAsync 中运行着一个无限的 while 循环。方法从队列中取出项目并处理它们,结果存储在 ReliableDictionary 中。 .当您想要快速 ACK 回您收到(并安全地持久化!)其输入的客户端并且能够异步执行实际处理时,此模式非常有用。

请注意,如果您打算将状态存储在 ReliableQueue 中/ReliableDictionary ,使用无状态参与者进行处理可能没有太大值(value)。您最好将该逻辑移动到有状态服务中的类型中并在那里进行处理,因为您可能会为自己节省一个来回网络跳跃。

关于asp.net - Azure 服务结构 : IReliableQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34742321/

相关文章:

.net - 带有 .Net 应用程序的 MySql 或 MS Sql Server

c# - MVVM Light Toolkit 的文档/示例?

linux - 无法在 Linux 环境中打包 Service Fabric 应用程序

azure - FABRIC_E_SERVER_AUTHENTICATION_FAILED : CertificateNotMatched

asp.net - 如何在 ASP.NET MVC 应用程序中最好地实现和构造 View ,以便在页面加载时获得更好的缓存?

如果页面在 IE8 native 模式下有许多控件,则 ASP.NET 事件连接无法正常工作

javascript - 如何在 ASP.NET MVC 中使用 javascript 更改元素的优先级?

asp.net - sessionState 超时不适用于 DefaultSessionProvider

.net - null == null 吗?

azure - Service Fabric 生产托管