文章目录
示例介绍
写散文时,最难的部分往往是写前几句话。当开始构建Akka系统时,也会有类似的“空白画布”感觉。你可能会想:谁应该是第一个演员?它应该住在哪里?它该怎么办?幸运的是,与散文不同,已有的最佳实践可以指导我们完成这些初始步骤。在本指南的其余部分中,我们将研究一个简单Akka应用程序的核心逻辑,向您介绍参与者,并向您展示如何使用他们制定解决方案。该示例演示了帮助您启动Akka项目的常见模式。
先决条件
您应该已经按照 Akka快速开始指南中的说明下载并运行 Hello World 示例。 您将使用它作为种子项目并添加本教程中描述的功能。
物联网示例用例
在本教程中,我们将使用 Akka 构建物联网 (IoT) 系统的一部分,该系统报告来自安装在客户家中的传感器设备的数据。 该示例侧重于温度读数。 目标用例允许客户登录并查看他们家中不同区域的最后报告温度。 您可以想象这样的传感器还可以收集相对湿度或其他有趣的数据,并且应用程序可能会支持读取和更改设备配置,甚至可能在传感器状态超出特定范围时提醒房主。
在实际系统中,应用程序将通过移动应用程序或浏览器向客户公开。 本指南仅关注存储温度的核心逻辑,这些逻辑将通过网络协议(例如 HTTP)调用。 它还包括编写测试,以帮助您熟悉并精通测试Actor。
教程应用程序由两个主要组件组成:
- 设备数据采集:基于远程设备在维护一个本地表,来自同一个家的传感器分成一组。
- 用户仪表板: 定期从已登录用户家中的设备收集数据,并将结果作为报告呈现。
下图说明了示例应用程序架构。 由于我们关心每个传感器设备的状态,我们将设备建模为Actor。 正在运行的应用程序将根据需要创建尽可能多的设备Actor和设备组实例。
您将会从本教程中学到什么
本教程介绍并说明:
- Actor层次结构以及它如何影响Actor的行为
- 如何为Actor选择合适的粒度
- 如何定义消息协议
- 典型的对话风格
让我们开始学习更多关于Actor的知识吧。