文档章节

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

李博SEO
 李博SEO
发布于 2017/05/24 17:05
字数 968
阅读 27
收藏 0
点赞 0
评论 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。

阅读原文请点击

© 著作权归作者所有

共有 人打赏支持
李博SEO
粉丝 2
博文 95
码字总数 47489
作品 0
Android JNI(一)——NDK与JNI基础

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头 ⋅ 05/09 ⋅ 0

ThreadLocal源码分析

阅读原文请访问我的博客 BrightLoong's Blog 一. 简介 提醒篇幅较大需耐心。 简介来自ThreadLocal类注释 ThreadLocal类提供了线程局部 (thread-local) 变量。这些变量与普通变量不同,每个线...

BrightLoong ⋅ 05/28 ⋅ 0

Lightbend 公司加入 Eclipse 基金会以支持 Jakarta EE

Lightbend 是 Scala 语言背后的支持公司,同时也是响应式编程的先行者,它支持着 Reactive 平台的开发。日前该公司宣布已正式加入 Eclipse 基金会,因为 Lightbend 表示这是企业版 Java 的新...

局长 ⋅ 04/14 ⋅ 0

2018年Java编程学习面试最全知识点总结

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰 ⋅ 05/14 ⋅ 0

Effective Java 第三版——43.方法引用优于lambda表达式

Tips 《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8...

M104 ⋅ 05/22 ⋅ 0

类加载器ClassLoader-2

类装载器 大纲: n class装载验证流程 n 什么是类装载器ClassLoader n JDK中ClassLoader默认设计模式 n 打破常规模式 n 热替换 class装载验证流程: n 加载 n 链接 – 验证 – 准备 – 解析 ...

康熙兄弟 ⋅ 06/02 ⋅ 0

ZooKeeper学习笔记八 ZooKeeper典型应用场景——命名服务

《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社 命名服务是分布式系统中比较常见的一类场景。命名服务是分布式系统最基本的公共服务之一。在分布式系统中,被命名的实体通常可...

xundh ⋅ 05/02 ⋅ 0

Maven的安装文字版(Windows/Linux/Mac)

以下内容引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/mavenenvironment_setup.html,安装信息更新到最新版本: Maven是基于Java的工具,所以首要必须的要求是你的电...

easonjim ⋅ 2017/05/07 ⋅ 0

Android JNI学习(四)——JNI的常用方法的中文API

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头 ⋅ 05/09 ⋅ 0

安装JDK,出现错误:Error: could not find java.dll

前言 小编因为项目的需要,重新进行JDK的安装,之前安装了一个jdk9.0.4版本的,现在需要安装一个1.8版本的,没想到在安装的过程中出现了问题。下面小编带大家看一下这次安装的前后一些坑吧。...

m18633778874 ⋅ 05/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

1.01-StringUtils的使用

import org.apache.commons.lang.StringUtils; 一、StringUtils 常用的方法: 1. 判断某一字符串是否为空 , 为空的标准是 str==null 或 str.length()==0 StringUtils.isEmpty(null) ==>tr......

静以修身2025 ⋅ 31分钟前 ⋅ 0

几道Spring 面试题

1、BeanFactory 接口和 ApplicationContext 接口有什么区别? ApplicationContext 接口继承BeanFactory接口 Spring核心工厂是BeanFactory BeanFactory采取延迟加载,第一次getBean时才会初始...

职业搬砖20年 ⋅ 32分钟前 ⋅ 0

包饺子

http://storage.slide.news.sina.com.cn/slidenews/77_ori/2018_24/74766_826131_625489.gif

霜叶情 ⋅ 34分钟前 ⋅ 0

兑吧:从自建HBase迁移到阿里云HBase实战经验

摘要: 业务介绍 兑吧集团包含兑吧网络和推啊网络,兑吧网络是一家致力于帮助互联网企业提升运营效率的用户运营服务平台,提供积分商城和媒体运营服务。推啊网络是一家互动式广告平台,经过多...

猫耳m ⋅ 45分钟前 ⋅ 0

xml解析

方法一: String s_xml1 = "<xml>" + "<head>lalalalal</head>" + "<body>1234</body>" + "</xml>"; try { DocumentBuilderFactory documentBuilderFactory......

GithubXD ⋅ 46分钟前 ⋅ 0

reuse stream

Although Java streams were designed to be operated only once, programmers still ask how to reuse a stream. From a simple web search, we can find many posts with this same issue ......

idoz ⋅ 46分钟前 ⋅ 0

兑吧:从自建HBase迁移到阿里云HBase实战经验

摘要: 业务介绍 兑吧集团包含兑吧网络和推啊网络,兑吧网络是一家致力于帮助互联网企业提升运营效率的用户运营服务平台,提供积分商城和媒体运营服务。推啊网络是一家互动式广告平台,经过多...

阿里云云栖社区 ⋅ 48分钟前 ⋅ 0

从世界杯看国内运动体育社交新能量

2018年世界杯已正式拉开帷幕,一场全世界球迷的狂欢也正式开始。 世界杯影响力:30亿+球迷的狂欢+社交话题 世界杯这个超级IP和对社交网络的引爆让更多的人目光聚焦到国内运动体育社交这个层...

ThinkSNS账号 ⋅ 48分钟前 ⋅ 0

不固定值替换

<?php$arr = 20;$data = str_replace(array(10,20,30,40),array("blue","red","green","yellow"),$arr);print_r($data);...

nsns ⋅ 50分钟前 ⋅ 0

Job for nginx.service failed 错误解决方案

今天刚在centos7上安装了nginx-1.2.11,/etc/init.d/nginx start启动时,出现 Job for nginx.service failed because the control process exited with error code. See "systemctl status n......

河图再现 ⋅ 52分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部