一种全局对象ID生成方法
摘要:
网游中,角色ID、公会ID和道具ID等一般设计成全局唯一。这样做,一个便于跟踪这些对象的生存状态;另外一个是合区不会产生冲突。用大区ID+大区内服务器ID+时间+生成序列生成一个64bits的数字作为全局ID,其中0表示非法的ID。 globalID = clusterID(8) + zoneID(8) + time(30) + seq(18)time(30)以秒为单位,可以表示34年。seq(18)是262144,也就说1毫秒内可以生成262个ID,5us一个,应该足够了。进一步讲,如果1s内,seq重复了,就生成0,表示生成失败,下一秒重试就行了。 阅读全文
posted @ 2011-05-05 21:57 daemonh 阅读(222) 评论(0) 推荐(0)
浙公网安备 33010602011771号