
AKKA
文章平均质量分 91
AKKA
进击的雷神
优快云博客专家、担任过EMV软件工程师、嵌入式软件工程师、JAVA开发工程师、测试开发工程师、某公司测试组长,有自己的测试专利
展开
-
Actor系列总结
https://blog.youkuaiyun.com/qiaojialin/article/details/80272334https://blog.youkuaiyun.com/edaire/article/details/72911117一、Actor1.Actor模型Actor模型是一个并发编程的数学模型。当接收到一个消息后,actor可以做出以下反应:做出本地决策,创造更多actor,发送更多消息,并且决定如何...原创 2018-07-04 21:54:58 · 1637 阅读 · 2 评论 -
Actor 的生命周期——处理
一、监督Erlang 将容错性引入了Actor 模型,它使用的概念叫做监督(supervision)。监督的核心思想就是把对于失败的响应和可能引起失败的组件分隔开,并且把可能发生错误的组件通过层级结构来组织,以便管理。1.监督的层级结构Akka 使用Actor 层级结构来描述监督。当我们创建Actor 时,新建的Actor 都是作为另一个Actor 的子Actor,父Actor 负责监督子Acto...原创 2018-07-04 21:52:47 · 1039 阅读 · 2 评论 -
事件来源Event sourcing
1.事件来源基本思想:当一个持久化actor接收到一个(非持久化)命令,首先它要验证(这个命令)是否可以运用到当前状态。如果命令验证成功,根据这个命令产生一个事件。在事件成功持久化之后,可以用来改变actor的状态。当持久化actor需要恢复时,因为之前已经验证过可以运用到当前状态,我们可以直接将持久化的事件进行重放。Akka持久化通过AbstractPersistentActor支持事件来源。a...原创 2018-07-07 21:21:18 · 1348 阅读 · 1 评论 -
横向扩展——集群化
1.集群的定义集群就是一组可以互相通信的服务器。集群中的每台服务器成为一个节点或成员。 集群可以动态修改大小,并且在发生错误情况时继续运行,把影响降到最低。所以集群 需要具备两个功能:失败发现以及使得集群中的所有成员最终能够提供一致的视图。2.在 Akka Cluster 中,每个节点监控的最大节点数默认是 5 个节点。在 Akka 中,失败检测是通过在节点间发送心跳消息并接收响应来完成的。这种最...原创 2018-07-04 21:53:59 · 3312 阅读 · 2 评论 -
Persistence
https://blog.youkuaiyun.com/qq_35208298/article/details/52298910https://blog.youkuaiyun.com/beliefer/article/details/53925622#1.持久化目的:防止数据丢失无法恢复Akka持久化使有状态的actor能保留它的内部状态,因此我们不会因为JVM崩溃、监管者引起或集群中迁移导致数据丢失无法恢复而尴尬,A...原创 2018-07-04 21:56:13 · 643 阅读 · 0 评论 -
Actor与并发
Future:(用来存放将来可能成功或失败的结果)的使用一、响应式四准则设计目标:灵敏性、伸缩性、容错性、事件驱动性二、剖析Actor1.AbstractActor:首先,我们继承了AbstractActor2.Receive:AbstractActor 类有一个receive 方法,其子类必须实现这个方法或是通过构造函数调用该方法。receive 方法返回的类型是PartialFunction。...原创 2018-07-04 21:51:36 · 1144 阅读 · 1 评论 -
Akka集群
每个节点只会监控它后面的2个节点是否发生错误失败检测是通过节点间发送心跳消息并接收响应来完成的。Akka 会 根据心跳的历史记录以及当前的心跳信息计算出某个节点可用的可能性。Akka 会依照这 些数据和配置的容错限制得到计算结果,然后将节点标记为可用或不可用。gossip协议达到最终一致性:集群中的每个节点和它的邻居节点交换已知的状态。接着,这些邻居节点再将已知状态传递给它们的“邻居”,以此往复,...原创 2018-07-07 21:23:38 · 516 阅读 · 1 评论 -
AKKA消息传递
1.消息处理的一些基本机制:将消息定义为不可变;向Actor 请求响应;转发消息;Future 管道2.有4种核心的Actor消息模式:tell、ask、forward和pipeAsk:向Actor 发送一条消息,返回一个Future。当Actor 返回响应时,会完成Future。不会向消息发送者的邮箱返回任何消息。Tell: 向Actor 发送一条消息。所有发送至sender()的响应都会返回给...原创 2018-07-04 21:52:12 · 946 阅读 · 0 评论 -
AKKA纵向扩展
利用多核最基本的机制就是并行一、有四种类型的 Dispatcher 可以用于描述如何在 Actor 之间共享线程:Dispatcher:默认的 Dispatcher 类型。将会使用定义的 Executor,在 Actor 中处理消息。在大多数情况下,这种类型能够提供最好的性能。 PinnedDispatcher:给每 个 Actor 都分配自己独有的线程。这种类型的 Dispatcher为每个...原创 2018-07-04 21:53:32 · 430 阅读 · 1 评论