我正在处理Amazon.com软件开发工程师实习生面试问题的面试问题。
其中一位受访者被问到“为Amazon.com的订单生成服务提供一个可伸缩的系统设计。”
我做了一些初步的研究,发现亚马逊订购号生成了一个表3-7-7的17位数量级,其中最后的14位似乎是伪随机的,由一种“用数学公式生成随机数序列的算法”( Psuedo随机定义 )产生了psuedo随机意义。
我自己验证了一个,并看到我的一个订单号- 112-9036246-9502632遵循了这个准则。
您将如何提供一个可扩展的,如在“计算机应用程序的能力,以继续发挥作用,因为它的大小被改变以满足用户端”的可支持性系统设计这一点?对我来说,这个订单生成服务已经是相当可伸缩的,因为3-7-7组合应该允许为大量用户提供大量的组合。但是,如果您希望此服务更具有可伸缩性,那么您是否只需要在末尾添加更多的数字以允许更多的订单组合,这样就可以容纳更多的订单?
发布于 2015-02-20 13:09:38
诀窍是在前三位数字。最后14位数字保证在特定域(例如服务器)中是唯一的,因此前3位数字必须唯一地标识每个域。因此,每17位数都保证是唯一的.
https://softwareengineering.stackexchange.com/questions/273789
复制相似问题