Akka
2016-06-16 23:08:36 0 举报
AI智能生成
Akka是一个用Scala编写的开源工具包,用于构建高度并发、分布式和容错的应用程序。它提供了一种简单而强大的方式来处理消息传递、线程管理和任务调度等关键功能。Akka的核心概念包括Actor模型、消息传递、远程过程调用(RPC)和集群管理。通过使用Akka,开发人员可以轻松地构建可扩展、高性能和可靠的分布式系统,适用于各种应用场景,如实时数据处理、网络编程和微服务架构。
作者其他创作
大纲/内容
收件箱和路由
inboxDemo
routerDemo
路由
路由策略
轮询选择Actor发送
随机发送
发送给空闲的Actor
组内广播
Agent
多个Actor 同时访问一个共享变量,会出现问题
解决:遇到多个Actor 访问一个Agent 时 只会按顺序执行,不会并发执行
软件事务内存
Death Watch
用于让一个Actor 监听另一个的生命周期,即使一个Actor ,即使被监听者挂掉了 监听者仍然能监听到
使用ActorContext.unwatch 解除监听 ActorContext.watch 获得监听
消息
消息是Actor 之外最主要的组件,消息间传递应满足不可变性,如 immutableMessage
消息投递策略
消息最多投递一次,成功失败无关,消息丢失
消息至少投递一次,直到成功,消息重复收
消息精准投递一次,不漏不多
消息投递无法保证顺序性
Actor
helloworlddemo
Actor 生命周期
使用ActorSelection 进行批量消息发送
Akka demo
Supervisor
监督策略
OneForOneStatagegy
父Actor只对出异常的子Actor处理
默认策略
AllForOneStatagegy
父Actor对出异常的子Actor以及所有兄弟处理
适合Actor间紧密联系的场景
每个 Actor 存在于其父context 中,每个 Actor 由其父Actor 掌管,当发生异常时,父Actor 负责对其进行处理
四种异常处理行为
Stop
Restart
Resume
忽略异常,继续执行
Escalate
不知道如何处理,上抛给其父Actor
0 条评论
下一页