Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦境迷离
Cs Summary Reflection
提交
55ba7ede
C
Cs Summary Reflection
项目概览
梦境迷离
/
Cs Summary Reflection
11 个月 前同步成功
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cs Summary Reflection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
55ba7ede
编写于
11月 05, 2019
作者:
梦境迷离
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix 符号,时间:2019-11-05 22:49:51
上级
3881b068
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
7 addition
and
7 deletion
+7
-7
docs/_posts/2019-10-14-Akka-Actor的监督与监控.md
docs/_posts/2019-10-14-Akka-Actor的监督与监控.md
+7
-7
未找到文件。
docs/_posts/2019-10-14-Akka-Actor的监督与监控.md
浏览文件 @
55ba7ede
...
...
@@ -41,22 +41,22 @@ Akka实施了一种称为“父母监督”的特定形式。actor只能由其
### 高级监督actor
`/user: The Guardian Actor`
/user: The Guardian Actor
与之交互最多的actor可能是所有用户创建的actor的父级actor,即名为“/user”的监护人。
使用system.actorOf()创建的actor是此actor的子actor。这意味着当该监护人终止时,系统中的所有正常actor也将被关闭。
这也意味着这位监护人的监管策略决定了高层正常actor是如何受到监督的。由于Akka 2.1可以使用
`akka.actor.guardian-supervisor-strategy`
配置它,
这也意味着这位监护人的监管策略决定了高层正常actor是如何受到监督的。由于Akka 2.1可以使用
akka.actor.guardian-supervisor-strategy
配置它,
该策略采用了SupervisorStrategyConfigurator的完全限定类名。当监护人升级失败时,根监护人的反应将是终止监护人,这实际上将关闭整个actor系统。
`/system: The System Guardian`
/system: The System Guardian
这个特殊的监护人被引入是为了实现一个有序的关闭序列,其中日志记录保持活跃,而所有正常的actor终止,即使日志本身是使用actor实现的。
这是通过让系统监护人监视用户监护人并在接收到终止的消息时启动自己的关闭来实现的。顶级系统actor使用一种策略进行监督,该策略将对所有类型的异常无限期地重新启动,但ActorInitializationException和ActorKilledException除外,这将终止所讨论的子异常。
所有其他可抛出的都会升级,并将关闭整个actor系统。
`/: The Root Guardian`
/: The Root Guardian
根actor是所有所谓的“顶级”actor的祖父母,并使用
`SupervisorStrategy.stoppingStrategy`
监督策略来监督“顶层Scopes的actor path”中提到的所有特殊actor,其目的是在任何类型的例外情况下终止孩子。
根actor是所有所谓的“顶级”actor的祖父母,并使用
SupervisorStrategy.stoppingStrategy
监督策略来监督“顶层Scopes的actor path”中提到的所有特殊actor,其目的是在任何类型的例外情况下终止孩子。
所有其他可移植对象都将升级为…。但是对谁呢?因为每个真正的actor都有一个监督者,所以根监护人的监督者不可能是真正的actor。
因为这意味着它是“泡沫之外的”,它被称为“泡沫行者”。这是一个合成ActorRef,它实际上是在第一个故障迹象出现时停止其子actor,并在根监护人完全终止时将actor系统的isTerminated状态设置为true(所有子节点递归停止)。
...
...
@@ -66,7 +66,7 @@ Akka实施了一种称为“父母监督”的特定形式。actor只能由其
*
"/user"是所有用户创建的顶级actor的监护人;使用ActorSystem.actorOf这个找到的
*
"/system"是所有系统创建的顶级actor的守护者,例如,记录侦听器或在actor系统启动时通过配置自动部署的actor。
*
"/deadLetters"是死信actor,在这里,发送给已停止或不存在的actor的所有消息都会被重新路由
(在尽最大努力的基础上:消息甚至可能在本地JVM中丢失)
。
*
"/deadLetters"是死信actor,在这里,发送给已停止或不存在的actor的所有消息都会被重新路由
(在尽最大努力的基础上:消息甚至可能在本地JVM中丢失)
。
*
"/temp"是所有短暂的系统创建的actor的监护人,例如那些用于实现ActorRef.ask.
*
"/remote"是一种人为的路径,下面所有actor的监事都是远程actor的引用。
...
...
@@ -80,7 +80,7 @@ AllForOneStrategy适用于以下情况:儿童群体之间有非常紧密的依
您必须确保任何actor能接收到重新启动之前排队的消息且随后处理都没有问题。
通常,使用“全对一”策略时,停止一个子程序(即不响应失败)不会自动终止其他子级的;这可以通过观察它们的生命周期来完成:如果终止的消息没有由主管处理,
它将抛出DeathPactException,该异常
(取决于其主管)
将重新启动它,默认的preRestart操作将终止所有的子级。当然,这也可以显式地处理。
它将抛出DeathPactException,该异常
(取决于其主管)
将重新启动它,默认的preRestart操作将终止所有的子级。当然,这也可以显式地处理。
注意,从“一对一”管理者创建一次性actor意味着临时actor升级的失败将影响所有永久actor。如果不需要,请安装一个中间管理器;这可以通过为工作进程声明一个大小为1的路由器来完成。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录