全球递增计数器有哪些选项?

时间:2017-12-07 01:17:49

标签: azure architecture distributed-system

我正在构建一个可以从全球递增计数器中受益的系统。基本上,一种增加计数器并返回值的服务。我已经尝试过Azure Page Blobs(计数器增量标头),Redis(INCR)和SQL Server(Identity)。它们都有效,但前两个相当慢,通常需要一秒钟才能生成2000-3000个数字。 SQL Server速度更快,但只有在连接打开后才能运行。

Azure,AWS或软件(例如redis)中的其他选项有哪些?是否有任何特别擅长的服务?

1 个答案:

答案 0 :(得分:-1)

您可以使用AWS DynamoDB Atomic Counters来实施全局计数器。

  

您可以使用UpdateItem操作来实现原子计数器a   数字属性,无条件地增加,没有   干扰其他写请求。 (应用所有写入请求   按照他们收到的顺序。)用原子计数器,   更新不是幂等的。换句话说,数值将   每次调用UpdateItem时都会递增。

这允许构建一个可靠的计数器,您可以根据您的比例调整吞吐量(启用自动调节),也可以使用最近引入的Global Tables(可选)在全球范围内复制,提供快速,本地,读取和写性能。

  

Global Tables以DynamoDB为您提供的全球足迹为基础   具有完全托管,多区域和多主数据库   为大规模缩放提供快速,本地,读写性能,   全球应用。全局表复制您的Amazon DynamoDB   自动选择AWS区域的表格。