我已经学习Akka几天了,我有一个简单的问题就可以很好地理解它。应该如何使用角色为REST服务创建应用程序体系结构?演员应该是:
我无法以这种方式理解它-如何正确使用演员?如果我创建具有层(控制器,服务,DAO和数据库)的REST服务,应如何在Akka应用程序中将其作为参与者分开?
答案 0 :(得分:1)
有一个博客(可能是this)很好地反映了我对Akka演员的看法。我真的不使用它们。
取决于您与之交谈的人,有些人真的很喜欢它,而另一些人则将其视为潜在的基本要素,在应用程序级别上可能没什么用。
我使用演员来处理状态。就这样。否则,它是期货或Akka Streams。希望您喜欢该博客。如果您仍然有疑问,请射击。我身后有5年以上的Akka。很乐意提供帮助。
答案 1 :(得分:1)
我不建议使用原始的Akka actor构建REST服务。 Actor更适合用于封装状态和行为。例如,松耦合的轻量级执行器可以用于simulating individual IoT devices(例如,恒温器),每个控制器都保持其自己的内部状态(例如,冷设置),并通过无阻塞消息传递来调整/报告其设置。 / p>
对于REST API /服务,您可能要考虑使用Play,它是在Akka之上构建的,支持非阻塞I / O,作为头等公民的JSON,Websocket等。创建REST service using Play的示例。
在微服务上,如上面的链接所述:
在Play中构建REST API不会自动使其成为 “微服务”,因为它没有涵盖更大范围的关注 微服务,例如确保弹性,一致性或监视。
要将微服务整合到REST API中,请考虑Lagom framework,它是在Play / Akka之上构建的,并具有reactive的质量。