分布式总结

谈谈分布式锁、以及分布式唯一ID的实现

Twitter的snowflake算法,snowflake算法其实是一种比较简单而常见的唯一ID生成算法。MongoDB内部的ID生成算法就和snowflake非常接近。snowflake生成64bit的id,程序中用long(JVM类语言)表示,这里简单解释一下ID的结构,第一位是标识位,因为ID常常用long来表示,这一位是0,表示这是一个正数;接下来是41位的时间戳,时间的单位是毫秒,这个事件一般是相对时间;然后接下来的10bit用来表示不同的机器,5位代表数据中心,5位代表数据中心内的机器的id。接下来的12位是id的序列号,区别同一毫秒中同一机器生成的不同ID
基于Redis的分布式ID
基于ZK的分布式ID
基于时间段内的ID池实现

从千万数据到亿级数据,会面临那些技术挑战,有什么技术解决思路

分区,按照账号的id来设计分区函数,比如说前四位相同的放在一个分区中,但是在分区太多的时候性能就不好
区分活跃数据,缓存活跃数据
读写分离
数据分片,也就是数据水平切分,常见的水平切分算法有“范围法”和“哈希法,解决非切分主键的查询思路为,一是建立字 段与主键关系表,将其转化为主键查询;二是缓存把映射关系放在缓存里性能更佳
基因法,使用查询字段生成“基因”数组合到主键中取

猜你喜欢

转载自blog.csdn.net/u010271614/article/details/88364752