在非并发环境下使用Akka框架的应用

3
我正在使用Java构建web服务。业务逻辑没有并发需求。这是一个简单的rest调用,需要输入JSON,并在进行一些处理后返回输出JSON。但是,请求可能会有数百万个,因此我计划引入负载均衡器。
我的问题是,我已经阅读了几篇文章,它们说使用Akka可以加快开发速度,并提供性能提升。对于没有并发要求的应用程序,是否真的如此?
谢谢提前。

如果您正在寻找分发工作的方法,也许这篇文章会对您有所帮助:http://www.lightbend.com/activator/template/akka-distributed-workers - Balázs Édes
@bali182:我没有将工作拆分为处理任务的用例,因为任务非常小。然而,我需要处理大量并行请求。我想知道akka是否是一个好的选择,还是应该使用传统的Java REST服务? - Vicky Desai
1个回答

1
即使没有并发需求,Akka也是一个很棒的框架。你可以使用actor来封装单一职责,向它们发送消息以触发响应,并用另一个消息进行回复。
这样做的好处是,您可以在领域内建模错误,这意味着将带有错误的消息发送回发送方,发送方可以决定如何处理该错误,例如重试n次。因此,您可以在Akka中获得良好的异常建模。
更好的是,每当Actor遇到异常失败时,其父Actor都可以决定如何处理,例如重新启动Actor、将错误传播到更高的层次等。
因此,总之,Akka可以帮助您开发基于消息的可靠反应式领域。当您的逻辑发生变化时,它还可以让您轻松地将其并发或将消息传递给其他Actor。

谢谢您的解释。您能否评论使用Akka相对于传统REST服务设计时的速度增益/损失? - Vicky Desai
这取决于你使用的 Http 框架。你可以使用 Akka Http 来公开 Http 端点,也可以使用其他框架。Akka 可以帮助你使其并发(从而更快),但这不是 Akka 的主要目的。它确实有助于使其具有弹性和可伸缩性。 - Martin Seeler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接