请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

關於分布式 ZK ID 生成器

老師 這邊我看了一下 首先想到的問題是這樣生成的id會是有順序的麼 後來我查了一下mycat的doc 老師課上講的應該是用分布式 ZK ID 生成器對吧

如果是的話 前面38位應該是時間戳 所以順序應該沒什麼問題 但是doc有些部分我始終看不明白
文件上寫
ID 结构:long 64 位ID 最大可占 63 位

  • |current time millis(微秒时间戳 38 位,可以使用 17 年)|clusterId(机房或者 ZKid通过配置文件配置 5 位)|instanceId(实例 ID可以通过 ZK 或者配置文件获取5 位)|threadId(线程 ID9 位) |increment(自增,6 位)

但是時間戳才38位 如果是微秒 那麼應該是大約 2的38次方/1000000/60/60/24/365 年 可是這樣根本不到
如果是文件微秒寫錯 因為millis應該是毫秒 那也應該是 大約 2的38次方/1000/60/60/24/365 年 但這樣也才8.7幾 要17年應該至少要39位才夠吧

這邊我看了很久一直想不明白 不知是不是有什麼地方會錯意了 再請老師指點迷津一下 十分感謝

還有就是 我的理解是它的可用多久時間應該是從服務起起來開始算經過多少毫秒麼
最後是 如果真的因為我有些地方搞錯 可用17年 那如果用這個的服務真的撐到17年過後了 這樣要怎麼處理呢

問題有點多 但我這些地方真的很困惑想很久 麻煩老師指點一下 再次萬分感謝老師 謝謝

正在回答

1回答

你这么一说我看了一下mycat手册,还真是这样的,可能是mycat手册写错了,应该是毫秒级的时间戳

0 回复 有任何疑惑可以回复我~
  • 提问者 pinkyTseng #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-01-14 22:08:06
  • 提问者 pinkyTseng #2
    老師 可是就算是毫秒 那也應該是 大約 2的38次方/1000/60/60/24/365 年 但這樣也才8.7幾 要17年應該至少要39位才夠吧?
    回复 有任何疑惑可以回复我~ 2020-01-14 22:09:48
  • 神思者 回复 提问者 pinkyTseng #3
    对,mycat文档写的有瑕疵
    回复 有任何疑惑可以回复我~ 2020-01-15 10:12:46
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号