![华为Serverless核心技术与实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/84/43738084/b_43738084.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.1.3 有状态函数的并发一致性模型
并发一致性是分布式系统中的重要问题,本节将通过两个示例来说明有状态函数的并发一致性模型。
3.1.3.1 并发访问不同状态实例
针对不同状态实例的并发访问不会产生调用死锁,例如,在以下示例中,用户并发访问两个不同状态实例,该并发过程相互间不会产生干扰,client函数调用执行完毕后,状态id1的值加1,状态id2的值加2。
![](https://epubservercos.yuewen.com/815418/23020640809739406/epubprivate/OEBPS/Images/092-2.jpg?sign=1738947303-zveLL5GhSc5Aqt0h72xqhwjsej2dX76r-0-e8a440a1f26c2ef159b0bc47b372a982)
3.1.3.2 相同状态实例递归调用
共享状态可以将相同状态实例的递归调用细分为两种情况:在正确的时机使用get操作和在不正确的时机使用get操作。
1. 在正确的时机使用get操作
在正确的时机使用get操作的示例如下:在这种场景下,日志打印的操作应该在addone函数之前执行,华为元戎的并发一致性模型会确保这种执行顺序。
![](https://epubservercos.yuewen.com/815418/23020640809739406/epubprivate/OEBPS/Images/093-2.jpg?sign=1738947303-5HconcbCDZujgyJi298rl0yjGqeg6qMq-0-721cf25e50cc2508138dd227451b9041)
2. 在不正确的时机使用get操作
在不正确的时机使用get操作的示例如下:在触发函数之后使用get操作获取YRFuture的情况,可能会使日志打印的操作在addone之后执行。华为元戎的并发一致性模型可以保证和在正确的时机使用get操作的结果一致,但在原则上推荐开发者使用在正确的时机使用get操作的写法。
![](https://epubservercos.yuewen.com/815418/23020640809739406/epubprivate/OEBPS/Images/094-1.jpg?sign=1738947303-cajMNFqGNhFh0HCTSCrFV20R5tjAGYym-0-41e6beb64e07c6d071475a4704667a75)