【发布时间】:2016-04-21 01:49:06
【问题描述】:
我有具有以下服务的服务结构:
- 当每个请求的字节数组为 1MB 时,接收请求的无状态 web-api。
- 处理数据并将其写入 Azure 存储帐户的服务。
我从多个客户端接收到大量数据,我想将其插入一组队列(Azure 服务总线),以便每个服务(在 2.中)在从队列中接收到数据后对其进行处理。
问题是我无法在队列中存储超过 250K 的消息。
在这些 1MB 数据块被处理并保存在 Azure 的存储帐户中之前,存储这些数据块的最佳做法是什么?
天真的解决方案:
将数据保存在状态管理器中的单实例微服务,并且只会将引用保存在队列中。
这个解决方案打破了微服务架构,因为它不可扩展。
请帮忙?
【问题讨论】:
-
为什么不直接从 Web API 写入 Azure 存储?
-
我有 X 个微服务……它们不能在请求到达时都处理 web-api 请求。我不希望客户端超时,所以我将请求存储在一个队列中,这样当 X 服务有空闲处理它时,它就会被处理。
-
是的,但为什么您认为将 1MB 发送到队列比将其存储到 Azure Blob 更快?
-
状态管理器队列?大概。服务总线队列?也许。我需要最快的数据存储,直到我能够处理它。
标签: c# azure servicebus azure-service-fabric