我想知道Akka Actor模型的适用性。
我知道在创建和销毁大量Actor实例的情况下它很有用。例如一个呼叫服务器,每个来电都创建一个演员实例并与其他几个演员通信,并在通话结束后被杀死。
在以下情况中它是否也有用:
服务器在Actors上实现了一些处理元素(10~50)。这些处理元素的寿命是无限的。其中一些不维持状态,一些维持状态。处理元素处理消息并以固定方式将消息传递给其他参与者。系统从外部接收大量消息,并通过处理元素传递出系统。
我的直觉是,我们无法通过使用Akka Actor模型获得任何优势,甚至在Scala中实现此服务器。因为Akka的设计用例不适用于此。如果按比例放大意味着动态增加处理元素,那么它将是适用的。
对于固定拓扑,我认为如果我用Java实现它,它将在原始性能方面更有益。 Scala的“不变性”功能会导致更多副本,从而降低性能。所以我相信我最好坚持Java。
我的理解是否正确?我是一个坚果壳我想知道为什么我应该离开Java并使用Scala / Akka作为上面的应用场景。我的目标是每秒处理100万条消息。
答案 0 :(得分:2)
如果这个问题仍然存在......
Scala与Java
Akka Actors vs.其他方式
DataFlow实施