什么是无状态应用-Stateless App

作者: PageThinker | 来源:发表于2019-04-06 10:42 被阅读1次

    无状态应用:Stateless Application 是指并不会在会话中保存下次会话中去要的客户端数据。 每一个会话都像首次执行一样,不会依赖之前的数据进行响应。

    有状态的应用: Stateful Application 是指会在会话中保存客户端的数据,并在客户端下一次的请求中来使用那些数据。

    Some Usage Scenarios

    在无状态应用中,会话数据将会被存储在客户端或者透传给需要的这些数据的服务。在开发离线应用时,这是一个非常重要的的因素。通过这种方式来开发,会话数据将会被存储在终端用户的设备上,例如:当网络不可用时,用户将数据存储在自己的设备上,当网络重新连接时,会话数据将被上传并复制到云中。

    在分布式系统中,无状态应用使实现了分布式水平扩展成为可能。当分布式系统中的一个组建是无状态时,能够在出现故障时轻松的重新部署,也能够自由的水平扩展来适应负载。组建之间也能够方便的使用API来进行通信。

    函数式编程(Functional Programming)是一种使用非常小的代码段进行软件开发的方法。每一个函数执行的时候都仿佛是首次执行,不依赖于之前的内容。因为所有函数都是无状态的,所以开发人员可以用多种方式来组装函数,而不必担心破坏了依赖关系。

    Stateless Application

    所以, 我们在开发微服务时,一种实现方式是将所有的需要的数据进行透传。比如,当业务上需要从User类中获取country国家这个属性时,如果不是基于stateless app,那么初期就会将获取用户身上的country散落在各个服务中。一旦user类上属性发生变化,例如country更加语义的被修改为countryCode,那么带来的修改量时巨大的,而且很有可能部署之后才发现对其他服务的影响。使用stateless app,则事情变的简单了,还是上面的例子,每个服务都是通过API的参数来获取country的value,即时user类中的属性发生的变化,也不会突然波及很多服务。


    参考文章:
    1, stateless app

    相关文章

      网友评论

        本文标题:什么是无状态应用-Stateless App

        本文链接:https://www.haomeiwen.com/subject/yjjkiqtx.html