我的后端系统为大约 10K POS 设备提供服务,每个设备将以顺序方式请求服务,但是我想知道后端如何保证以顺序方式处理给定客户端的请求。
例如,设备发出“销售”请求,并超时(可能 DB 被阻止)以获取响应,因此它发出“取消”以取消该销售请求。在这种情况下,后端可能在收到“取消”请求时仍在处理“销售”交易,这可能会导致一些意想不到的结果。
我的想法是为每个设备(客户端)设置一个持久队列,但是设置 10K 队列可以吗?我不确定,请帮忙。
我的后端系统为大约 10K POS 设备提供服务,每个设备将以顺序方式请求服务,但是我想知道后端如何保证以顺序方式处理给定客户端的请求。
例如,设备发出“销售”请求,并超时(可能 DB 被阻止)以获取响应,因此它发出“取消”以取消该销售请求。在这种情况下,后端可能在收到“取消”请求时仍在处理“销售”交易,这可能会导致一些意想不到的结果。
我的想法是为每个设备(客户端)设置一个持久队列,但是设置 10K 队列可以吗?我不确定,请帮忙。
这是计算机科学的一个极其复杂的领域,其中很多问题已经解决了很多次。我不会尝试重新发明轮子。
我的建议:
您现有的系统和您提出的想法听起来都可能违反ACID:
更不用说,您也有可扩展性问题。结合可扩展性和ACID,您将面临需要专业知识的重量级情况。
如果您能提供帮助,我强烈建议您依赖现有系统,特别是如果这是用于销售点的。