为用户创建的每个实体安全分配唯一ID号的最佳方法是什么?

时间:2016-06-18 23:00:28

标签: amazon-web-services logic amazon-dynamodb

我的用户可以创建条目,每个条目我都想自动为其分配ID号。这些条目存储在DynamoDB表中,并通过lambda函数和api网关创建。

ID号必须是唯一的,并且分配它的过程必须是健壮的并且是唯一性。

我现在的想法是使用从1开始的“全局”变量,每次创建一个条目时,它都会将条目ID分配给全局变量值,然后递增全局变量值。

这种方法是否有效,如果是的话,实施它的最佳方法是什么?你能想到一个更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您的解决方案无法扩展。

拥有一个全局变量需要你以并发安全的方式增加它的值(以避免竞争条件),并且还需要持久化变量以在应用程序重启后支持增量。

为了避免这个确切的问题,使用的模式之一是使用UUID作为密钥。 Dynamo DB的java sdk通过提供自定义注释@DynamoDBAutoGeneratedKey来支持此模式。这可以确保每个条目都有自己生成的随机标识符。

如果您的首选语言不是Java,那么您应该能够获得一个库来生成UUID。