【发布时间】:2016-08-03 02:24:39
【问题描述】:
让我们举一个简单的例子。我有一个管理用户的有状态服务。它有一个可靠的字典,可以将 UserID 映射到一些数据,包括用户名。
在此服务的 RegisterUser 方法中,我们要检查用户名是否未被使用。当服务是单例时,这很简单,但是当它被分区时,我们最终会遇到几个问题:
- 如果用户已经存在,我们必须询问所有分区。我们可能会引入另一个将用户名映射到用户 ID 的单例服务来解决这个问题。
- 存在竞争条件。两个用户可以尝试同时注册name用户名。两个用户都有可能成功。
我正在寻找有关处理此类情况的可能方法的一般建议。我可以想象这种问题会经常发生在分区数据上。
【问题讨论】:
标签: architecture microservices consistency azure-service-fabric