基于akka集群的应用程序自动横向扩展/扩展设置

时间:2019-08-14 11:10:21

标签: akka autoscaling akka-cluster

假设您有一个基于 akka-cluster 的应用程序/ REST API。

此应用程序可同时满足 CPU绑定请求和内存绑定请求。 假设您设计了该应用程序,以便如果一个节点以cpu角色加入, 节点将用作CPU绑定请求的资源(通过某种类型的群集感知路由器),并且如果某个节点以memory角色加入,则该节点将用作内存绑定请求的资源(例如通过使用持久性参与者的集群分片。

要实现此类应用程序的自动缩放需要什么?群集如何标记“外部”它需要更多(或更少)一种或另一种类型的节点?我找不到此类设置的任何示例。

1 个答案:

答案 0 :(得分:0)

akka-cluster不会自动“标记”外部,除非您为其创建了一些代码。但是,在AWS之类的公共云环境中,自动缩放概念的工作原理有所不同。常规方法是让警报(在群集外部)监视指标(CPU或内存)。警报触发时,您可以执行操作。一种操作是启动所需角色(CPU或内存)的新实例。

当您需要缩小规模时,会发生相同的情况,但是您需要注意要关闭的节点中正在运行的工作负载。

另一个重要方面是当出现新节点并希望加入集群时的服务发现,为此,我建议使用模块akka-managementhttps://github.com/akka/akka-management

长话短说,akka-cluster不提供自动缩放的工具,您需要编写一些代码或在集群周围使用一些工具来实现它。