首页 > 其他 > 详细

有状态服务和无状态服务

时间:2019-03-02 13:16:44      阅读:265      评论:0      收藏:0      [点我收藏+]

对于应用服务器来说,当客户端来访问时,是否会在服务器保存客户端的信息(比如:session),如果保存,即客户端的请求在服务端具备上下文关系,那么就是有状态服务;

那么无状态服务便是服务器端不保存客户端的请求信息,服务器端能获取到的信息全部来自于请求所携带的信息,或者在其他服务器保存的信息(比如专门存session的服务器)

从分布式角度 对比:有状态服务,多台服务器就session的同步问题,就令人难受:1.大量数据同步,浪费带宽。2. 多台服务器中都有相同的session副本,浪费大量的内存,3.有状态,服务宕机可能会存在数据丢失 4.对于高可用的服务,快速扩容时必要的,然而有状态的服务会有冷启动的问题,必须先加载数据,方可对外提供服务 

  一个方案就是使用专门的session服务器来保存session,客户端登陆的时候会去session服务器进行拿信息,这样来看,对于应用服务器来说,所有的访问都是无状态了。

 

但是有状态服务也有好处:不需要去调用别的服务,低延迟,不需要额外的存储。

 

对于构建一个高可用的服务,CAP理论上:Consistency (all  nodes see the same data at the same time)

                   Availability ( a guarantee that every request receives a response about whether it succeeded or failed)

                   Partition tolerance (the system continues to operate despite arbitrary partitioning due to network failures)

但是在实际中,一般只能保证AP 对于一致性,强一致性:实时都可以读取到最新值,

                      弱一致性:写入新值后,有的服务会读取的到,有些服务读取不到,

                     最终一致性:在一段时间后,都可以读取到最新的值。  

有状态服务和无状态服务

原文:https://www.cnblogs.com/doublethree/p/10460497.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!