存在异步服务“s”。不能为同一帐户同时执行此服务。但对于不同的帐户,同时执行is没有问题。
对于上面的场景,简单的解决方法是阻止用户从ui再次触发服务,直到第一个请求完成。但这并不是首选,因为这个api被用户多次命中,阻止它似乎是一种糟糕的体验。因此,我们希望允许用户多次发出请求,并对这些请求进行排队,然后依次运行它们。因此,决定使用一些消息队列服务。
问题是我想限制同一帐户的同时请求。如果服务是为帐户'a'运行的,而另一个请求是为帐户'b'发出的,我不想阻止第二个请求。这意味着我将不得不无序地阅读队列中的消息。示例-
帐户“a”的服务“s”当前正在运行。sa1级
帐户“a”的另一个服务“s”请求进入队列。硫酸钠
但此请求将被阻止,因为服务“s”已在为“a”运行。
接下来,帐户“b”的另一个服务请求“s”进入队列sb。
第一个请求sa1仍在执行,队列中有以下条目-sa2 sb
现在sa2必须被阻止,但我不想阻止某人,因为帐户是不同的。
服务的所有请求都在同一主题中。
据我所知,没有办法从消息队列中无序读取消息。这是否可以通过Kafka实现?如果是,怎么做?
任何形式的指导在这里都是有用的。在这种情况下完全使用队列是错误的吗?或者服务的设计是否应该有所不同,以适应这种行为?
谢谢您。
暂无答案!
目前还没有任何答案,快来回答吧!