2022
我们一起努力

服务器高可用(面试官问:两台服务器如何设计一个高可用方案)

最近在面试有遇到,面试官这么一个问题,两台服务器如何保证一台服务器崩了,切换到另外一台服务器,用户的登录信息等一些常用的信息可以直接使用,不会丢失的,为这两台服务器设计一个高可用的方案。

对于一个5年以上的程序员,高可用概念不会陌生,一般在互联网公司都非常常见的架构。对于这个问题,面试官意图就是想考察一下你对服务器部署方面的能力。

对于上面的问题,保证切换服务器,用户登录信息及常用的信息不会丢失,继续可以访问。这个问题对于单机系统来说,这些数据存储到我们的session中去就可以,Session没有失效,用户操作都可以看到操作过往数据。对于多台服务器集群我们需要怎么解决。

我想到以下几个方案

方案一、新增一台Session服务器,全局管理session

利用独立部署一台Session服务器用于全局管理Session,应用服务每次读写Session,都需要访问Session服务器,如果session服务器存在,应用服务器从session服务获取数据

全局Session服务器,可以建立在目前常见的Redis 、Memcached的基础进行数据的封装,让其符合session存储和访问请求。

服务器高可用(面试官问:两台服务器如何设计一个高可用方案)

方案二:应用服务器的Session同步复制

对于集群的应用服务器实现同步Session对象,任何一台服务器宕机都不会影响到Session对象的访问,当前服务器只要从本地获取Session数据就可以。

缺点:当规模较大的时候,大量的session同步操作会占用太多的服务器内存及网络资源,系统会不堪重负。

方案三:通过本地cookie存储session对象

利用浏览器支持cookie记录session的对象简单,只要浏览器不清理cookie,session数据都存在,可用性高,并且支持服务器线性伸缩。

缺点:cookie存储数据大小受到限制,每次请求都会自动带上cookie影响访问性能。

对于上面的方案,我们也可以设计成组合方式,在用户端,我们可以采用Cookie存储用户登录基础信息,服务器端,我们采用全局的session服务器的方式,用于存储一些常用的操作数据。

上面是我的一些初步的思路,你有更好的高可用的方案,可以与我交流。

赞(0)
文章名称:《服务器高可用(面试官问:两台服务器如何设计一个高可用方案)》
文章链接:https://www.fzvps.com/67891.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!