【实战场景一】设计一个分布式环境下全局唯一的信号器

前面,我们罗列了一些面试时可能会到的一些技术上的问题。但都是基于理论,也就是外面所说的八股文。应付一些基础的或者中级的开发岗位来说,是没什么问题的,但如果想拿高薪,或者升职的话,仅靠八股文是仅仅不够的,所以今天就开始进行场景实战,以此来提升大家的内功。

如何设计一个分布式环境下全局唯一的信号器

今天,叶秋面试到最后环节,一位美女面试官问了一个分布式的基础实战问题:如果让你去设计一个分布式环境下的全局唯一的信号器,你会怎么设计?

这里先说下本人的思路,完整的正确答案放到后面。

我刚听到这个问题第一反应就是:

  1. 使用UUID

优点:全球唯一,如果后续有项目迁移或者数据合并之类的,就完全不用担心数据冲突问题

缺点:使用字符串存储,会消耗一定量的存储空间,如果数据比较大,会很耗性能。

  1. 使用数据库自增的id

优点:它的优点就是UUID的缺点,简单且节省空间和性能

缺点:它的缺点就是UUID的优点,数据库自增的id是仅限于单库,如果后续数据合并冲突问题会很令人头疼。可以说,它和UUID的优缺点刚好相反。

  1. 使用雪花算法生成的ID

猜你喜欢

转载自blog.csdn.net/weixin_44427181/article/details/129043150
今日推荐