架构改进中常见的解决方案

架构的依据:

并发量和数据量

1.使用缓存技术,例如redis、memached

2、横向拓展(使用集群)

3、拆分高负荷服务、独立为单一模块,构建分布式

4、大表数据切片(分库、分区、分表)

5、使用搜索中间件(solr、elasticsearch)

 

架构解决之session跨域共享问题

1、负载使用hash(ip)简单说就是在当一个客户端进行访问的时候,负载在为其分配一个服务器的时候,生成一个ip与其绑定,这样当客户端再次发起访问的时候,访问的依旧是上一次访问的服务器,这样当然,这样是有问题的,这样就会导致特定的用户访问时一直是这台服务器,如果恰巧某台服务器的用户在同一天不停的访问,那么,这台服务器就承受不了

2、使用redis共享session

 架构解决之缓存问题

一般来讲,缓存是这样进行的:

1、一个请求,先到缓存中进行查找,如果存在,直接返回

2、如果查询不到(缓存穿透、击穿),则调用接口或者直接查取数据库,并将此值放入缓存中

3、缓存中数据可能和数据库中的值不一致,使用过期时间调节

4、若缓存中数据在某一时刻大量同时失效,造成大量的对数据库或者接口请求操作,此刻即为缓存击穿(雪崩)

5、缓存穿透,当数据库和缓存中都没有此数据,但用户还在不停地发起请求,这样就会造成每次这个请求都要去存储层查询,失去缓存的意义

解决上面问题

1、不设置过期时间,数据永久有效

2、此时需要额外的机制来实现数据的同步

3、解决缓存穿透(使用布隆过滤器,或者在缓存中设置key-null键值对,后者设置的过期时间不能太久,因为可能会有很多的空值,这样会占用内存空间)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值