文档章节

【Java】AKKA文档(java版)—角色的引用、路径和地址

云栖运营小编
 云栖运营小编
发布于 2017/05/24 17:05
字数 968
阅读 32
收藏 0

2.5 角色的引用、路径和地址

这一章描述,角色在一个有可能是分布式的角色系统中是如何被识别和定位的。它关系到了角色系统形成的内在监管层级以及角色跨越多个网络节点之间通信的位置透明化。

上述图片显示了角色系统中几个最重要实体之间的关系,请仔细阅读。

 

2.5.1什么是一个角色引用?

一个角色引用是ActorRef的一个子类型,它的主要目的是为它所代表的角色提供发送消息的功能。每个角色可以通过self字段访问自己指定(本地)的引用,这个引用包括发送者引用,默认会发送所有消息给别的角色。相反的,在消息处理期间,这个角色可以访问发送者引用,通过sender方法来呈现当前的消息。

这里提供了几个基于角色系统配置的不同类型的角色引用:

  1. 角色系统中的纯本地引用被配置成不支持网络功能的,这些角色引用发送的消息不能通过一个网络发送到另一个远程的JVM。
  2. 角色系统中的本地引用在被启用时,它代表了那些在同一个JVM里的角色支持网络功能。为了发送消息给别的网络节点,这些引用包含了协议和远程地址信息。
  3. 这里有一个用于路由器的本地角色引用的子类型(即角色混合了路由器的特性)。它的逻辑结构和上述的本地引用一样,有一点不同的是,向它们发送的消息会被分发给它们的子角色中的一个。
  4. 远程角色引用表示了哪个角色可以通过远程通信到达,即发送消息给它们会透明的序列化消息,并把它们发送给远程的JVM。
  5. 这里有几个角色引用的特殊类型,它们代表了角色引用的所有实用目的:
  • PromiseActorRef是Promise的一个特殊代表,它被用于完成一个角色的响应。akka.pattern.ask创建这个角色引用。
  • DeadLetterActorRef是死亡信件服务的默认实现,定义那些Akka路径中终点是关闭或不存在的消息。
  • EmptyLocalActorRef是Akka查找一个不存在的本地角色路径时返回的:它等同于DeadLetterRef,不过它保留了它的路径,这样Akka可以通过网络把它发送出去,然后可以通过它的路径和别的已经存在的角色引用进行比较,这样就能得到一些已经死亡的角色。
  1. 还有一些你可能还没见过的一次性的内部实现:
  • 有一个角色引用,它并不呈现为一个角色,它只作为一个伪管理员的根部守护者(guardian,下同),我们称它为“行走在时空泡沫中”。
  • 第一个日志服务开启之前,事实上激起角色创建的工具是一个伪造的角色引用,它能接收日志事件并把它们直接打印到标准输出中,它就是Logging.
  • StandardOutLogger。

阅读原文请点击

本文转载自:http://click.aliyun.com/m/21736/

共有 人打赏支持
云栖运营小编
粉丝 7
博文 95
码字总数 47489
作品 0
朝阳
运营/编辑
私信 提问
Akka v2.4.9-RC2 发布,Actor 模型开发库

Akka v2.4.9-RC2 发布了,Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。 Akka 2.4.9-RC2 (current stable release) for Scala Scala ...

oschina
2016/08/06
1K
0
【Java】内存问题——内存溢出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tr1912/article/details/82261379 模拟内存溢出 我们通过自己写代码,模拟一下两种内存溢出的情况,一种是堆内...

王啸tr1912
08/31
0
0
Java 私塾第一、二章笔记整理

Java 私塾第一、二章笔记整理 第一章 java入门 一.Java是什么? 一种计算机编程语言 一种软件开发平台 一种软件运行平台(JRE :java runtime environment) 一种软件部署环境 二.Java版本:...

luodis
2011/01/14
245
2
Actor References, Paths and Addresses 20

原文:https://doc.akka.io/docs/akka/2.5/general/addressing.html 在这里描述了如何在可能分布的actor系统中识别和定位actor。它与Actor系统形成内在监督层次结构以及Actor之间的通信相对于...

woshixin
12/13
0
0
Akka v2.4.9 发布,Actor 模型开发库

Akka v2.4.9 发布了。Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。 该版本更新如下: Akka Documentation HTML for Java and Scala...

局长
2016/08/20
547
0

没有更多内容

加载失败,请刷新页面

加载更多

新手也能看懂,消息队列其实很简单

该文已加入开源项目:JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目,Star 数接近 16k)。地址:https://github.com/Snailclimb/JavaGuide. 本文内容思维导图: 消息...

阿里云官方博客
11分钟前
0
0
如何在Chrome浏览器中启动deviceready事件(尝试调试phonegap项目)?

我正在开发PhoneGap应用程序,我希望能够在Chrome中调试它,而不是在电话上调试。但是,我在onGetReady()函数中初始化我的代码,该函数在PhoneGap触发“deviceready”事件时触发。由于Chr...

kisshua
今天
9
0
nginx中部署vue打包后的静态文件

如何在nginx中部署静态资源就不描述了, 请看我的这篇博客 将vue脚手架项目打包后的静态文件放到nginx上, 发现有个问题, 即url上有#, 怎么去掉这个#呢. 1 项目中router的mode 路由的mode要为h...

克虏伯
今天
13
0
JS容易理解错误的地方

在这端代码执行的末尾,你会不会hi变量回事函数中的hi了?你会不会认为这不是按引用传递了? 对值传递和引用传递产生质疑了? 1 var hi = {};2 function sayHello(hi) { ...

器石_
今天
9
0
Java开发学习--MongoDB

之前只学过sql,第一次使用非关系型数据库。以前对于关系型数据库与非关系型数据库的概念很模糊,通过这次的学习对这两者有了一个清晰的概念。 主键 在MongoDB中,主键名叫"_id",如果在生成...

微笑向暖wx
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部