- Orleans:构建高性能分布式Actor服务
- 吴哲昊编著
- 324字
- 2022-06-17 16:15:45
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间请求的寻址、路由和异常处理等服务。
![](https://epubservercos.yuewen.com/5DD5C6/23446275701391606/epubprivate/OEBPS/Images/18_01.jpg?sign=1739183387-90RU9OeDsJq11MJGk2QU8gckHm4bQCNg-0-e2a66fe29b17b88a8fc1fcc6f056ba92)
•图2-1 Student Grain的状态、服务与标识示意图