要扩展(水平扩展)使用Akka编写的应用程序,需要做哪些工作?粗略地说,要在集群中添加一个新节点,我是否只需要在它上安装一个JRE,并使用我的Akka客户端应用程序运行.jar文件?
发布于 2013-05-14 06:53:38
虽然Akka本身具有很好的伸缩性,但只有当您的应用程序设计良好以处理可伸缩性时,它才能做到这一点。简单地将节点添加到集群可能会有帮助,也可能没有帮助。
例如,如果您的Akka应用程序提供了某种REST API,那么请求将如何在您的节点之间路由?状态存储在哪里,如果不在Akka中的话?如果它存储在Akka中,如何确保来自同一客户端的后续请求最终在同一节点上?如果它存储在运行时之外(例如,SQL数据库),您将如何处理阻塞行为?如果您的SQL数据库成为瓶颈怎么办,现在怎么办?
Akka提供了极好的可伸缩性,我已经在它的角色模型上构建了几个这样的系统来实现这一点。然而,您不能仅仅在问题上抛出节点,然后希望参与者来解决它。可伸缩性更多的是关于严谨的思考和设计,而不是希望参与者是魔术棒。
https://stackoverflow.com/questions/16531231
复制相似问题