我正在devise一个http服务,每天可以处理多达5亿个请求(由多个独立的机器服务)。
对于每个请求,我必须生成唯一的ID并将其返回给用户。 在10分钟的窗口内,ID必须是100%唯一的。 (首选1天,全球唯一的ID是理想的。)不需要服务器 – 服务器通信来生成该ID。
愚蠢的假会话的例子:
客户端:GET / foo
服务器:内容types:文本/ XML
<根>
<ID> ab9d1972-2844-11e0-86b2-000c29544403 </ ID>
<other_data />
</根>
在上一代这个http服务中,我使用了UUID。
用于C代码的用户界面
强制机器从live CD启动
windows应用程序应该使用哪些组合键来避免冲突?
windows如何计算电池的剩余时间?
我怎样才能区分同一个文件的两个部分?
我对UUID很满意,但是有一个问题:它们太长了。 在这样的请求数量下,这个额外的大小在磁盘空间中明显浪费了日志文件。
创build一个简短但唯一的标识符的最好方法是什么? 为了使事情变得有价值,我想algorithm应该产生最多一半的UUID长度,而整天都是唯一的(10分钟应该更短)。
理想情况下,build议的algorithm将在普通C中具有理智,轻量级的生产质量实现。
更新:生成的ID在GET请求中传递时不应该要求URI编码。
应用程序来帮助解释一个GUI
开源的回声服务器
如果两个没有线程模型的COM类在一个进程内COM服务器中实现,会发生什么?
Thread Quantum:如何计算它
在windows中的桌面之间移动应用程序
给每台机器一个唯一的前缀。 给每台机器一个计数器。 要生成一个ID,增加计数器,并将其值附加到前缀。
如果你想混淆ID,加密它们 – 密码是一个可逆转换,所以将其应用于唯一值将产生独特的值。
一些想法:
每天5亿个请求。 真?
使用UUID。
如果需要,不要使用http(因为这是更重要的开销),并以二进制形式传输UUID。
你需要一定数量的字节来保证你的服务器返回一个真正唯一的 ID。
如何使用UDP?
无论如何,你想做什么?
总结以上是内存溢出为你收集整理的简短的唯一ID全部内容,希望文章能够帮你解决简短的唯一ID所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)