起因:在分析掘金的登录操作时发现存在不同的id,在访问用户个人中心时使用的id,在请求用户信息(id,name,image...)时使用的id不一样
ID与UUID的区别
ID(标识符)和UUID(通用唯一标识符)是两种用于标识对象或实体的不同方式,它们有一些重要的区别:
-
生成方式:
-
ID(标识符):通常是由数据库或应用程序分配的数字或字符串,用于唯一标识对象。这些ID可以是自增长的整数(例如,在关系型数据库中使用的主键)或应用程序中分配的唯一字符串(例如,在 NoSQL 数据库或应用程序代码中生成的)。它们的生成方式通常是由应用程序或数据库管理。
-
UUID(通用唯一标识符):是一种全局唯一的标识符,它的值通常是一个128位的十六进制数字字符串。UUID是根据一组规则生成的,以确保在分布式系统中生成的UUID具有极低的碰撞概率。UUID的生成方式是相对独立的,不依赖于中央控制或数据库自增长计数器。
-
-
唯一性:
-
ID(标识符):的唯一性通常是由数据库或应用程序代码来维护的。在关系型数据库中,可以使用主键约束来确保ID的唯一性。在应用程序中,你需要编写代码来确保ID不会重复。
-
UUID(通用唯一标识符):的唯一性由其生成算法和长度来保证,因此在全球范围内具有高度的唯一性。尽管UUID的碰撞概率非常低,但在极端情况下可能会发生。
-
-
可读性:
-
ID(标识符):通常是相对短的整数或字符串,易于阅读和理解。它们可能包含有意义的信息,例如自增长的数字,或者是具有某种含义的字符串。
-
UUID(通用唯一标识符):是一个长的十六进制字符串,通常不具备可读性,因为它的值是为了唯一性而设计的,而不是为了人类阅读。
-
-
用途:
-
ID(标识符):通常在数据库表中用作主键,用于唯一标识记录。它们也可以用于生成唯一的URL或标识应用程序中的各种实体。
-
UUID(通用唯一标识符):通常用于分布式系统中,特别是在需要确保生成的标识符在多个节点之间是唯一的情况下。它们可以用作分布式系统中的唯一键或标识符。
-
如果需要一个简单、易读的标识符,并且在单个数据库中操作,那么ID可能更合适。如果需要全球唯一性,或者在分布式系统中工作,那么UUID可能更适合。要根据具体情况来决定使用哪种标识符。
分布式系统
分布式系统是一种计算机系统,其组件或节点分布在不同的物理或逻辑位置上,通过网络进行通信和协作,以共同完成某项任务或提供某种服务。分布式系统的设计旨在提高性能、可伸缩性、可靠性和可用性,以及支持大规模数据处理和多用户访问。
以下是一些分布式系统的关键概念和特点:
-
分布性:分布式系统的核心特点是其组件分布在多个地理位置或计算节点上。这些节点可以位于同一数据中心、不同数据中心、不同城市、甚至不同国家。
-
通信:在分布式系统中,各个节点之间需要进行通信以协调任务的执行。通信可以通过网络、消息传递、远程过程调用等方式进行。
-
并发性:分布式系统通常支持多用户并发访问和多任务并发执行。这就需要考虑并发控制、资源共享、锁机制等问题。
-
透明性:分布式系统的设计追求透明性,即使用户或应用程序不需要关心系统的分布性,也能够像访问本地资源一样访问远程资源。这包括透明的访问、位置透明性、故障透明性等。
-
可伸缩性:分布式系统应具备良好的可伸缩性,能够根据负载需求扩展或缩减节点,以满足不断增长的用户或数据需求。
-
容错性:分布式系统需要具备容错能力,能够在某个节点或组件发生故障时继续提供服务。这通常包括备份、冗余、故障检测和恢复机制。
-
一致性:分布式系统需要保持数据的一致性,即使在多个节点之间的数据复制和更新也需要保证数据的一致性。一致性模型包括强一致性、最终一致性和事件ual一致性等。
-
安全性:分布式系统需要具备安全性,以确保数据传输的机密性和完整性。这包括身份验证、授权、加密和防火墙等安全措施。
-
管理和监控:分布式系统需要一套管理和监控工具,用于监测节点状态、性能、故障和日志等信息。
-
分布式算法:分布式系统通常使用各种分布式算法来实现各种功能,如选举、分布式锁、数据分片等。
分布式系统的应用广泛,包括云计算、大数据处理、社交媒体、电子商务、金融交易系统等。设计和管理分布式系统需要考虑各种挑战和复杂性,包括网络延迟、数据一致性、容错性等问题,因此分布式系统的开发和维护是一个具有挑战性的领域。