在项目中频繁访问hbase,造成hbase压力过大,而后设立缓存系统,但是会造成缓存雪崩问题,即当缓存过期时,会出现大量的DB连接,对DB产生迅间高负载。由于采用redis缓存,所以用redis锁的功能来防止过多线程同时访问数据库的现象,对于mutex锁的ttl问题,在项目中不用考虑时间过期问题(因为即使过期,有另外的线程去加锁获取,也不会造成很高的负载,分布式中分布机器过多就要考虑了),具体是否考虑应从项目中实际去考虑,以下是项目采用的解决思路流程:
在项目中频繁访问hbase,造成hbase压力过大,而后设立缓存系统,但是会造成缓存雪崩问题,即当缓存过期时,会出现大量的DB连接,对DB产生迅间高负载。由于采用redis缓存,所以用redis锁的功能来防止过多线程同时访问数据库的现象,对于mutex锁的ttl问题,在项目中不用考虑时间过期问题(因为即使过期,有另外的线程去加锁获取,也不会造成很高的负载,分布式中分布机器过多就要考虑了),具体是否考虑应从项目中实际去考虑,以下是项目采用的解决思路流程: