我看過GUID Collisons 的討論,但只是想知道如果兩個客戶端訪問的網頁完全相同( - 可能低至微秒)時生成GUID的網頁是否可能存在GUID衝突?ASP.NET服務器可以爲多個用戶生成相同的GUID嗎?
回答
這在理論上是可能的,但極不可能。
你不太可能會發生這種情況,你遠比在別的地方度過時間要好得多。您的服務器更容易着火,而不是兩次生成相同的GUID。 – 2008-11-07 14:29:59
不會。如果發生這種情況,衝出去買彩票!
From Wikipedia, the free encyclopedia
全局唯一標識符或GUID(發音/guːɪd/或/gwɪd/)是爲了提供參考號碼是在任何情況下獨特的特殊類型的軟件應用程序中使用的識別符的(因此,「全局」),例如,爲軟件應用程序中的某種類型的接入點定義內部參考,或者用於在數據庫中創建唯一密鑰。 儘管每個生成的GUID都不能保證是唯一的,但唯一鍵(2128或3.4×1038)的總數非常大,以致相同數字生成兩次的概率非常小,爲。例如,考慮可觀測的宇宙,其中包含約5×1022星;每顆恆星可以擁有6.8×1015個通用唯一GUID。
在單個服務器上,不,這是不可能的。第4版Guids是由一個僞隨機54位值組成的(除其他之外),據我所知,它們在重複之前遍歷所有值。
如果在多臺服務器上創建,那麼可能會發生guid衝突,儘管這是非常不可能的。
請參考RFC 4122,具體是第4.1.5節。我相信現代Windows使用v4 UUID。
如果您生成很多很多的GUID,那麼由於Birthday paradox,碰撞的可能性變得相當高。理論上GUID碰撞應該不太可能(天真的直覺),但實際上偶爾會發生。
當然,以編程方式處理這些碰撞是浪費時間,但您仍然應該以某種方式編寫代碼,如果發生這種情況,那麼您的代碼應該會大聲地失敗,而不是悄悄地並且未被發現。
- 1. 我可以讓Web服務器成爲索引服務器嗎?
- 2. 多個gearman服務器可以共享相同的libdrizzle隊列嗎?
- 3. 服務器和客戶端可以使用相同的套接字嗎?
- 4. MongoDB可以爲單個服務器生成多少個唯一的ID?
- 5. Xtext語言服務器可以支持多個客戶端嗎?
- 6. 客戶端可以有多個服務器嗎?
- 7. 您可以在羣集中擁有多個ASP.NET狀態服務器服務嗎?
- 8. 我可以同時使用節點js服務器和asp.net Web服務嗎?
- 9. 多個偵聽器可以使用相同的代碼嗎?
- 10. 我可以爲REST WCF服務自動生成服務引用嗎?
- 11. 從多個託管服務器調用相同的WCF服務
- 12. LoRaWAN安全性:網絡服務器可以生成AppSKey嗎?
- 13. 以guid爲用戶名的成員身份登錄asp.net
- 14. 從iPhone可以同時調用多個Web服務嗎?
- 15. 類型GetTypeFromCLSID(Guid clsid,字符串服務器) - 我可以使用IP作爲服務器名稱嗎?
- 16. Sql服務器AlwaysOn組可以成爲事務複製訂戶嗎?
- 17. ASP.NET MVC生成以'/'開頭的URLS,是相對可能的嗎?
- 18. 多個負載均衡器可以指向同一個上游服務器嗎?
- 19. Java的hashCode可以爲不同的字符串生成相同的值嗎?
- 20. 使用svcutil爲3個服務生成服務客戶端
- 21. 使用reslet框架編寫可以同時爲多個客戶端服務的獨立服務器
- 22. 多個客戶端更新相同的服務器模型?
- 23. 服務可以有多個端點嗎?
- 24. Windows託管服務可以成爲wcf客戶端嗎?
- 25. 多個WCF服務可以相互通信嗎?
- 26. Java客戶端/服務器 - 我們可以使服務器作爲客戶端到另一臺服務器嗎?
- 27. NGINX可以同時作爲Web服務器和代理服務器嗎?
- 28. 多個客戶端可以訪問Windows服務中託管的WCF服務嗎?
- 29. 具有相同服務的多個服務器
- 30. 爲WCF服務上可用的服務合同接口中的一個生成客戶端
查看http://stackoverflow.com/questions/184869/are-guid-collisions-possible – 2008-11-07 14:44:21
也http://stackoverflow.com/questions/39771/is-a-guid-unique-100-of-the時間 – 2008-11-07 17:52:26