假设您有一个基于 akka-cluster 的应用程序/ REST API。
此应用程序可同时满足 CPU绑定请求和内存绑定请求。
假设您设计了该应用程序,以便如果一个节点以cpu
角色加入,
节点将用作CPU绑定请求的资源(通过某种类型的群集感知路由器),并且如果某个节点以memory
角色加入,则该节点将用作内存绑定请求的资源(例如通过使用持久性参与者的集群分片。
要实现此类应用程序的自动缩放需要什么?群集如何标记“外部”它需要更多(或更少)一种或另一种类型的节点?我找不到此类设置的任何示例。
答案 0 :(得分:0)
akka-cluster
不会自动“标记”外部,除非您为其创建了一些代码。但是,在AWS
之类的公共云环境中,自动缩放概念的工作原理有所不同。常规方法是让警报(在群集外部)监视指标(CPU或内存)。警报触发时,您可以执行操作。一种操作是启动所需角色(CPU或内存)的新实例。
当您需要缩小规模时,会发生相同的情况,但是您需要注意要关闭的节点中正在运行的工作负载。
另一个重要方面是当出现新节点并希望加入集群时的服务发现,为此,我建议使用模块akka-management
:https://github.com/akka/akka-management
长话短说,akka-cluster
不提供自动缩放的工具,您需要编写一些代码或在集群周围使用一些工具来实现它。