使用Akka编写的应用程序需要做哪些扩展(水平扩展)?粗略地说,为了在集群中添加新节点,我是否只需要在其上安装JRE并.jar使用我的Akka-client应用程序运行文件?
虽然Akka本身可以很好地扩展,但只有在您的应用程序设计良好以处理可伸缩性时才能实现.简单地将节点添加到群集可能有帮助,也可能没有用.
例如,如果您的Akka应用程序提供某种类型的REST API,请求将如何在您的节点之间路由?国家存储在哪里,如果不存在于Akka本身?如果它存储在Akka中,如何确保来自同一客户端的后续请求最终在同一节点上?如果它存储在运行时之外(例如,SQL数据库),您将如何处理阻塞行为?如果您的SQL数据库成为瓶颈,现在怎么办?
Akka提供了极好的可扩展性,我已经在其actor模型上构建了几个这样的系统来实现这一点.但是,您不能只是将节点抛出问题并希望演员修复它.可扩展性更多的是严格的思考和设计,而不是希望演员是一个魔杖.