Akka
woshiyexinjie
day day up
展开
-
Akka构建Reactive应用《one》
看到这Akka的官网,描述使用java或者scala构建响应式,并发和分布式应用更加简单,听着很高级的样子,下面的小字写着消息驱动,但是在quickstart里面又写容错事件驱动,就是这么钻牛角尖。 Actors是的Akka的执行单位,Actor模型是一个抽象概念,它使得编写并发的、并行的和分布式的系统变得更加容易。官方给了一个 “helloworld” 示例,演示了基本知识,我们...原创 2018-08-01 12:51:43 · 343 阅读 · 0 评论 -
Akka相关术语 译《fifteen》
在本章中,我们尝试建立一个通用术语,以便为Akka所针对的并发分布式系统进行通信奠定坚实的基础。请注意,对于其中许多条款,没有单一的商定定义。我们寻求提供将在Akka文档范围内使用的工作定义。并发与并行并发和并行是相关的概念,但存在细微差别。并发意味着两个或多个任务正在取得进展,即使它们可能没有同时执行。这可以例如通过时间切片来实现,其中任务的各部分被顺序执行并且与其他任务的部分混合。另一...原创 2018-10-26 21:25:18 · 136 阅读 · 0 评论 -
Akka查询设备组《fourteen》译
加入以下依赖到项目中:介绍:到目前为止,我们看到的会话模式很简单,因为它们要求Actor保持很少或没有状态。特别:设备actor返回一个读数,不需要更改状态。 记录温度,更新单个字段。 设备组Actors通过在map中添加或删除条目来维护组成员资格。在这一部分中,我们将使用一个更复杂的例子。由于房主会对他们家中的温度感兴趣,我们的目标是能够查询一组中的所有设备Actors...原创 2018-10-17 21:07:04 · 184 阅读 · 0 评论 -
Akka向设备组添加Actor注册《thirteen》译
我们已经完成了设备级别的注册支持,现在我们必须在组级别实现它。在注册时,小组成员还有更多工作要做,包括:通过将注册请求转发给现有设备actor或通过创建新actor并转发消息来处理注册请求。 跟踪组中存在哪些设备Actor,并在组停止时从组中删除它们。处理注册请求设备组Actor必须将请求转发给现有子项,或者应创建一个。要通过设备ID查找子actor,我们将使用Map <Stri...原创 2018-10-05 20:59:29 · 286 阅读 · 0 评论 -
Akka与设备组一起工作《twelve》译
Dependency在项目中添加以下依赖项:介绍:让我们仔细看看我们的用例所需的主要功能,在用于监控家庭温度的完整物联网系统中,将设备传感器连接到我们系统的步骤可能如下所示:家中的传感器设备通过某种协议连接。 管理网络连接的组件接受连接。 传感器提供其组和设备ID以向我们系统的设备管理器组件注册。 设备管理器组件通过查找或创建负责保持传感器状态的actor来处理注册。 ...翻译 2018-09-17 20:37:50 · 126 阅读 · 0 评论 -
Akka增加消息的灵活性《eleven》译
我们的第一个查询协议是正确的,但没有考虑分布式应用程序执行。如果我们想在查询设备Actor中实现重发(由于超时请求),或者如果我们想查询多个Actor,我们需要能够关联请求和响应。因此,我们在消息中再添加一个字段,以便请求者可以提供ID(我们将在稍后的步骤中将此代码添加到我们的应用程序中):Full source at GitHub定义设备actor及其读取协议正如我们在Hello...翻译 2018-09-05 20:15:43 · 168 阅读 · 0 评论 -
Akka和Actor一起工作的消息《ten》译
Dependency在项目中添加以下依赖项:Introduction 在前面的主题解说中,我们解释了如何构建大型的Actor系统,即如何表示组件,如何在层次结构中排列Actor。在这一部分中,我们将通过实现设备Actor来查看。 如果我们使用对象,我们通常会将API设计为接口,这是由实际实现填充的抽象方法的集合。在Actor的世界中,协议取代了接口。虽然不可能在编程...翻译 2018-09-05 20:13:59 · 143 阅读 · 0 评论 -
Akka创建第一个Actor《nine》译
在项目中添加以下依赖项: 通过了解actor的层次结构和行为,剩下的问题是如何将IoT系统的顶层组件映射到actor。将代表设备和仪表板的Actor放在最顶层可能很诱人。相反,我们建议创建一个代表整个应用程序的显式组件。换句话说,我们将在物联网系统中拥有一名顶级Actor。创建和管理设备和仪表板的组件将是此Actor的子组件。这允许我们将示例用例体系结构图重构为Actor的树:...翻译 2018-09-05 20:12:48 · 227 阅读 · 0 评论 -
Akka的Actor生命周期《Eight》译
Actor在创建时出现,然后在用户请求时停止。每当一个Actor停止时,它的所有孩子也会被递归停止。此行为极大地简化了资源清理,并有助于避免资源泄漏,例如由打开的套接字和文件引起的资源泄漏。事实上,处理低级多线程代码时常常被忽视的困难是各种并发资源的生命周期管理。 要停止一个Actor,推荐的模式是在Actor内部调用getContext().stop(getSelf())来自行停止...翻译 2018-09-05 20:11:39 · 148 阅读 · 0 评论 -
Akka适用于分布式系统《five》译
正如上一篇所描述的那样,通用编程实践并不能恰当地满足要求现代系统的需求。谢天谢地,我们不需要把我们所知道的全部都废弃了。相反,角色模型以一定原则方式解决这些缺点,让系统能够以更好的方式与我们的心智模式相匹配。角色模型抽象允许您从通信方面考虑您的代码,而不是像大型组织中的人之间发生的交换。 角色模型允许我们:强制封装而无需使用锁 使用协作实体的模型对信号做出反应,改变状态,并相互发送...翻译 2018-08-31 13:37:32 · 205 阅读 · 0 评论 -
Akka简介多线程问题《four》译
原文:https://doc.akka.io/docs/akka/current/guide/introduction.html?language=scala Akka是一套开放源码库,用于设计可伸缩的、具有弹性的系统,跨越处理器内核和网络。Akka允许您专注于满足业务需求,而不是编写低级别代码来提供可靠的行为、容错和高性能。 许多常见做法和使用的编程模型并不能解决和设计现代计...翻译 2018-08-03 11:47:49 · 1265 阅读 · 0 评论 -
Akka异步通讯《three》译
异步通讯 Actors是被动的和消息驱动的,Actors在收到消息之前不会做任何事,使用异步消息进行通信。这确保发送方不会停留在等待其消息由接收者处理。相反,发送者将消息发送到收件人的邮箱中,并可以自由地进行其他工作。Actors的邮箱本质上是一个具有排序语义的消息队列。从同一个Actor发送的多个消息的顺序保存下来,但是可以与其他Actor发送的消息交织在一起。 您可能会想知...翻译 2018-08-02 12:49:37 · 229 阅读 · 0 评论 -
Akka定义Actors和消息《two》译
Akka定义Actors和消息 消息(Messages)可以是任意类型(任何Any的子类)。您可以发送装箱的原始值(例如String, Integer, Boolean等)作为消息以及诸如数组和集合类型等普通数据结构。Case类和Case对象创建更优的消息,因为它们是不可改变的,并且支持模式匹配,有利于我们在Actor中匹配所接收到的消息。 Hello World Actor ...原创 2018-08-01 22:57:27 · 194 阅读 · 0 评论 -
Akka系统《sixteen》译
Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Actor建模解决方案时,设想一群人并为他们分配子任务,将他们的功能安排到一个组织结构,并思考如何处理失败。ActorSystem是一个重量级结构,它将分配1 ... N个线程,因此每个逻辑程序...原创 2018-11-13 23:51:27 · 190 阅读 · 0 评论