我找不到这个问题的好标题。对不起。我试着用一个例子来解释它。我们现在正在思考这个问题,但我们不知道该怎么做。
我正在与一些朋友一起开发一个用户可以执行操作的Web应用程序,这些应用程序将在未来的某个时间进行。我们的目标是始终为我们的api提供100%的新数据。我们的想法是将我们的应用程序分为3部分。 Api(用于操作),前端(可能是nodejs,仅显示信息)和worker(n量,可扩展/可能是C#.NET Core应用程序)。
实施例: User1通过API =>执行动作'A'。服务器计算执行时间,应该在14点执行。
我们现在有以下问题。如果10000个用户执行应该在14:00发生的200个动作怎么办? (某些事件彼此依赖,异步变得困难的原因)。当然,工作人员可以处理这些事件,但我们如何确保通过API的请求始终有新数据?
我认为用户向api发送请求并获得OK +事件ID。 Api处理请求并通过websocket连接将结果响应发送回用户。但是我们如何确保它不会比通常的api呼叫花费更长的时间。它必须是用户的实时,因此它必须是可扩展的。
我们查看了RabbitMQ,但这不符合我们的标准,因为我们必须确保没有数据丢失或卡住。 (P.s.我们知道我们必须为这一事件提供一个可靠的数据库结构=>我们为此创建了一个大的mysql集群)
我希望有人找到一种方法来提出一些想法。 如果它可以帮助您回答我的问题,请随时提问。 :)
电贺, TheMrone