|
|
51CTO旗下网站
|
|
移动端

2.3.1.2 有状态服务和无状态服务

《Microsoft Azure 管理与开发(下册)平台服务PaaS》本书由世纪互联蓝云Microsoft Azure 开发技术支持团队的资深工程师们编写,主要阐述MicrosoftAzure PaaS 服务的开发应用,涉及计算服务、集成认证服务、数据存储服务、大数据服务等方面的内容。本节为大家介绍有状态服务和无状态服务。

作者:世纪互联蓝云公司来源:电子工业出版社|2018-07-12 17:21

2.3.1.2 有状态服务和无状态服务

有状态和无状态服务是两种不同的服务架构,两者的不同之处在于对于服务状态的处理。服务状态是服务请求所需的数据,它可以是一个变量或者一个数据结构。无状态服务不会记录服务状态,不同请求之间也是没有任何关系;而有状态服务则反之。

无状态服务对于客户端的单次请求的处理,不依赖于其他请求,处理一次请求的信息都包含在该请求里。典型的无状态服务的例子就是http 协议。例如,要实现一个计算求和的服务,每次请求都将求和的两个值传送给服务端,然后服务端计算求和结果,并返回给客户端,服务端不保存任何信息,这样的服务就属于无状态服务。

有状态服务则相反,服务会存储请求上下文相关的数据信息,先后的请求:是可以有关联的。例如,要实现一种计数服务,每次请求都要对之前请求处理的数据结果进行+1 的操作,这就需要在服务端存储维护计数的数据,这样的服务就属于有状态的服务。又例如,在Web 应用中,经常会使用Session 来维系登录用户的上下文信息。虽然http 协议是无状态的,但是借助于Cookie 和Session,可以使http 服务转换为有状态服务。

服务状态数据既可以存储在服务内部,也可以借助其他存储系统,例如数据库或者文件存储。Service Fabric 的Stateful Services 框架中提供了一种Reliable Collection 的数据结构,可以供应用服务存储服务状态数据,由Service Fabric 提供高可用的支持,并且提供分布式分区和可缩放的特性支持。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

软件架构设计

本书紧紧围绕“软件架构设计”这一主题,立足实践解析了软件架构的概念,阐述了切实可行的软件架构设计方法,提供了可操作性极强的完整的架...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊