Orleans:构建高性能分布式Actor服务
上QQ阅读APP看书,第一时间看更新

2.1 Grain的定义

作为Orleans框架的基础响应单元,每一个Grain实例由服务(Service)、状态(State)及标识(Identity)组成:Grain实例通过服务承载并实现应用程序逻辑,并将应用程序数据作为Grain状态进行保存,外部应用可以通过Grain标识对特定Grain实例进行访问。

以图2-1中的Student Grain为例,当外部服务(Teacher Grain或其他Student Grain实例)请求获取某学生的联系方式时,需要通过Orleans运行时向该学生(以学号为标识)发送请求消息,通过服务接口(IStudent)读取该Student Grain的内部状态(即联系方式字段),并同样以消息的形式返回至调用方;每个Student Grain负责维护其内部状态数据(分数、排名等),并运行外部应用通过服务接口对其进行修改;Orleans框架负责承载Grain的运行逻辑、管理Grain状态的变更及保存并提供Grain间请求的寻址、路由和异常处理等服务。

•图2-1 Student Grain的状态、服务与标识示意图