mysql视图创建

一,session共享

首先第一个要解决的就是sesison共享的问题,如下图。

通常有两种解决方案,第1种是配置nginx的负载集群策略为ip_hash,第2种是将session存储到其它地方,一般推荐放到redis中。

第1种方案适合于临时解决或者是为了兼容历史项目,但是从应用服务器无状态的角度考虑,推荐把用户会话session放到redis,如下图。

二,本地缓存

如果使用本地缓存,当从单体迁移到集群后,就会面临缓存同步的问题,如下图。

最佳实践是上分布式缓存,既解决了缓存同步的问题,也释放了应用服务器的内存资源,如下图。

三,文件服务

应用服务器在上集群之前,文件通常会放在本地,或者单独的文件服务器上,因为文件服务需要占用大量的硬盘空间,以上两种方案都无法很好的解决硬盘扩容的问题,最佳实践是放到云存储上,比如阿里云的OSS,或者腾讯云的COS上,这样可以做到按需扩容,如下图。

四,分布式环境下线程同步问题

在单机环境下,使用lock就可以解决线程同步的问题,一旦上了集群之后,lock就不管用了,这时需要上分布式锁,分布式锁的解决方案也有很多,我这里推荐使用redis的setnx,需要注意的是,如果redis是集群部署的,需要考虑这种情形:假设我们在redis的主节点上添加了一把分布式锁,不幸的是主节点挂掉了,而且主节点上的锁还没有同步到从节点上,如果此时有客户端来请求获得同一把锁,那么它将顺利地获得锁,之前那把锁会被无情地忽视掉,这就是分布式锁在Redis集群中遇到的麻烦。

如何快速更新自己的技术积累?

  • 在现有的项目里,深挖技术,比如用到netty可以把相关底层代码和要点都看起来。
  • 如果不知道目前的努力方向,就看自己的领导或公司里技术强的人在学什么。
  • 知道努力方向后不知道该怎么学,就到处去找相关资料然后练习。
  • 学习以后不知道有没有学成,则可以通过面试去检验。

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目,有需要的朋友点击这里即可免费领取

八年CRUD,疫情备战三个月,三面头条、四面阿里拿offer面经分享

八年CRUD,疫情备战三个月,三面头条、四面阿里拿offer面经分享

)]

[外链图片转存中…(img-fkXZdT0L-1627558620272)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值