Service Fabric —— Actor / Stateless Service 概念
作者:潘罡 (Van Pan) @ Microsoft
上一节我们谈到了Stateful Service。在Service Fabric中,Stateful Service是理解Micro Service的抓手。
在理解了Stateful Service的基础上,我们只需要记住:Actor是单线程模型Stateful Service,Stateless Service是无持久化Stateful Service。
Actor
Actor的基类是Stateful Service。
作为程序员,很快就能理解Actor具有Stateful Service的所有特性:数据持久化,事务,partition,replia 等等。
但是因为Actor是Stateful Service的扩展,因此它有一项Stateful Service没有的特性:单线程模型。
Actor应对于这样一个场景:某种共用数据,并且需要保证数据一致性。
举个例子:多个玩家合作在打Boss,每个玩家都是一个单独的线程,但是Boss的血量需要在多个玩家之间同步。同时这个Boss在多个服务器中都存在,因此每个服务器都有多个玩家会同时打这个服务器里面的Boss。
如果是Stateful Service,很难应对上面的场景。因为如果多线程并发请求Stateful Service,默认情况下它只会并发处理。这种情况下可能造成数据冲突。
但是Actor是单线程模型,意味着即使多线程来通过Actor ID调用同一个Actor,任何函数调用都是只允许一个线程进行操作。并且同时只能有一个线程在使用一个Actor实例。

同时,Actor实例的生命周期是由Service Fabric控制的。虽然调用过某个ID的Actor,但是Service Fabric依然可能会在长时间没有使用时回收这个Actor实例。
另外,Actor和Stateful Service一样,在发布前会定义好partition key和partition数量。当外部服务根据Actor ID来获取某个Actor实例时,Service Fabric会根据HASH算法返回对应的Actor实例。
Stateless Service
如果你已经理解了Stateful Service和Actor,那Stateless Service就非常好理解了。
Stateless Service没有partition,没有replica,也没有持久化数据。
唯一能控制Stateless Service的,是instance count。
也就是说,Stateless Service的不同实例就是跑在不同node上。
比如在发布时如果设置Stateless Service instance count是3,同时发布目标Service Fabric Node有5台,那Service Fabric就会随机选择三台node运行这个Stateless Service。
Stateless Service的典型场景是:Web前端
Web前端只需要负责接收HTTP request并调用后端服务获取数据并进行渲染。一般架构下,Web前端都是一些动态页面,不会持久化任何数据。
Web前端服务数越多,理论上就能处理更多的并发量。
希望以上的介绍,可以帮助你理解Actor和Stateless Service。
我们会在后续内容中介绍如何使用Actor和Stateless Service.
Service Fabric —— Actor / Stateless Service 概念的更多相关文章
- Service Fabric 群集在Service Replica过多的情况下报错问题
首先 Service Fabric 群集是正常的,部署一些服务过后也能正常运行,但一旦部署的服务过多后,且每个服务不止一个Partition,就有可能让群集状态为Error,但其实服务还是在正常运行的 ...
- 拥抱Service Fabric —— 目录
理解分布式 经典分布式系统设计 云时代分布式系统演进 Service Fabric基础概念 Node, Application, Service, Partition/Replicas Partiti ...
- Service Fabric是什么?
题记:鉴于社区对Service Fabric有诸多误解,希望借本文能让大家正确了解Service Fabric是一个什么东西,算是给其正名. 术语与分类 Service Fabric不仅仅是容器编排器 ...
- How to deploy JAVA Application on Azure Service Fabric
At this moment, Azure Service Fabric does not support JAVA application natively (but it's on the sup ...
- 重磅消息-Service Fabric 正式开源
微软的Azure Service Fabric的官方博客在2017.3.24日发布了一篇博客 Service Fabric .NET SDK goes open source ,介绍了社区呼声最高的S ...
- Service Fabric基本概念: Node, Application, Service, Partition/Replicas
作者:张鼎松 (Dingsong Zhang) @ Microsoft 在上一节中,为大家简明扼要的介绍了微软针对现代分布式系统在Azure上实现的相关服务组件.紧接上文内容,本节将为大家介绍Azur ...
- Service Fabric —— Stateful Service 概念
作者:潘罡 (Van Pan) @ Microsoft 上节中我们谈到了Service Fabric最底层的两个概念,一个是针对硬件层面而言的Node Type和Node.另一个是Applicatio ...
- Service Fabric基本概念:Partition/Replicas示例
作者:张鼎松 (Dingsong Zhang) @ Microsoft 在上一节的结尾简单介绍了Service Fabric中分区Partitions和复制replicas的概念,本节主要以示例的形式 ...
- Service Fabric学习-从helloworld开始(无状态服务)
原先做服务器程序, 都是部署在xx云上, 也没理解云是个啥, 不就是个服务器(虚拟机)租赁商吗? 好吧, 其实这个是IaaS, 而接下来要学习的ServiceFabric(以下简称SF)是PaaS. ...
随机推荐
- 作业 20181127-3 互评Beta版本
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2448 组名:可以低头,但没必要 组长:付佳 组员:张俊余 李文涛 孙赛佳 ...
- Beta冲刺第二周王者荣耀交流协会第五次会议
1.立会照片 成员:王超,高远博,冉华,王磊,王玉玲,任思佳,袁玥全部到齐. master:王磊 2.时间跨度: 2017年11月21日 15:00 — 15:17,总计17分钟. 3.地点: 一食堂 ...
- 20162328蔡文琛 大二week01
教材学习内容总结 算法+程序机构=程序 渐进复杂度称为算法的阶. 算法分析是计算机科学的基础课题. 增长函数显示了与问题大小相关的时间或空间的利用率. 算法的阶由算法增长函数的主项决定. 算法的阶给出 ...
- 软工1816 · 作业(十二)Beta答辩总结
组长博客 宣传视频 github团队项目仓库 本组成员 队员姓名与学号 124 王彬(组长) 206 赵畅 215 胡展瑞 320 李恒达 131 佘岳昕 431 王源 206 陈文垚 209 陈志炜 ...
- vue 如何使用scss (转载)
创建一个基于 webpack 模板的新项目 全局安装 vue-cli $ npm install --global vue-cli 创建一个基于 webpack 模板的新项目 $ vue init w ...
- Python入门:逻辑判断与运算符
这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...
- APP接口
<?phpClass Response{ /*** 返回json数据* @param $code 状态码* @param $message 描述信息* @param $data 数据* @par ...
- bing 搜索引擎 无法访问 bug
bing 搜索引擎 无法访问 bug 自从 Google 不好正常使用以后, 一直在使用 bing, 今天突然就 无法访问了,怎么回事?被黑了? ... loading https://cn.bing ...
- 【Nginx笔记】 fastcgi_param解释
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件请求的路径 fastcgi_param QUERY_STRI ...
- 2018 南京icpc现场赛总结
Day 0 提前5个小时从学校出发,在登机口坐下时,飞机还有1个多小时起飞. 航班准时起飞,到了南京以后直接坐地铁到学校附近(南京地铁票也太精致了吧). 因为天已经黑了,就只在学校附近转了一圈就回酒店 ...