我正在使用AWS Lambda和Node.js向我的DynamoDB表中插入项目,并且需要为项目生成唯一的I。
我最大的担忧是AWS Lambda底层基础设施中的熵,以及与每秒大量ids发生冲突的风险。
我正在使用nanoid,但不确定它是否符合这个要求。我使用的代码是这样的:
const { customAlphabet } = require("nanoid");
const alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
const idSize = 20;
const nanoid = customAlphabet(alphabet, idSize);
const id = nanoid(); //=> "scLV4Vc7OrJ2Vpib9rz6"非类群是如何产生随机性的?在AWS Lambda函数(高熵和低冲突变化)中使用是否安全?如果不是,还有其他选择吗?
发布于 2020-06-08 02:12:20
为了有十亿分之一的复制机会,必须生成103万亿版本4 ID。
使用DynamoDB总是有冲突的风险,因为它是BASE,所以您需要在一致性和性能之间进行交换。
如果您能够增加您的ID的字符串长度,这将使您更少的机会发生冲突。
如果您确实想要使用DynamoDB,但又想增加一致性,那么可以添加transactional support。这将增加少量的性能开销。
https://stackoverflow.com/questions/62249591
复制相似问题