假设我们有一家银行和一台 ATM。他们通过网络进行通信,这可能会失败。是否可以创建一个场景,它们之间的通信是 100% 持久的。在这种情况下,这意味着:
client withdrawn physical amount of money
<=>
account balance updated accordingly
让我们检查几个场景:
- ATM 发送请求,银行发送确认。确认丢失,银行更新帐户但客户没有收到钱。
- (如果银行等待 ATM 的确认以更新余额) ATM 发送请求,银行发送确认,ATM 发送 ack 接收。阿克迷路了。ATM 发钱,但银行从未更新帐户。
所以我永远无法创建一个解决方案,其中失败的网络不会阻止资金在任何一方丢失。
请指教。