问题:有一个POST方法将钱发送给应用程序的其他用户。我担心,有人可以获取API,编写机器人,并使此POST请求每秒500次,5000次甚至50000次。结果,他可能会发送比他实际拥有的更多的钱,因为如果同时处理1000个请求,则所有1000个请求的余额检查可能都成功,然而账户上的实际金额可能仅足够处理50个请求。
因此,基本上它更像是具有多个线程的标准“竞争”条件。问题是,我有多个服务器,它们没有任何关系。因此,300个请求可以发送到服务器A,300个请求可以发送到服务器B,其余请求可以发送到服务器C。
我所拥有的最好的想法是使用类似于“SELECT ... FOR UPDATE”的东西,并在数据库级别上进行同步。但是,我想考虑另一种解决方案。
有任何想法或建议吗?