微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何自动缩放分片Akka群集?

如何解决如何自动缩放分片Akka群集?

Akka群集文档未指定如何自动扩展群集-添加删除节点。在Akka生态系统中应该如何实现?例如,在两种情况下-当我们使用VM作为节点或组成集群的Kubernetes中的容器时。

如果特定节点上的负载很低,Akka Cluster是否会将Actors从那里移动到其他节点并自动关闭未充分利用的节点?

如果Akka Cluster不具有弹性功能,并且依赖于为此,使用Kubernetes(如here所述),然后再次,如果Kubernetes决定删除未充分利用的Akka集群节点,如何确保剩余在未充分利用的节点中的Actor被“优雅地”移动到其他群集节点?

解决方法

Akka群集无法处理从一个节点移动到另一个节点的参与者。

随着节点离开并加入集群,集群分片将转移托管分片的责任。基本上,如果一条消息通过集群分片发送到一个无主的分片中的actor(例如,因为托管该分片的节点不再在集群中),则将为该分片分配一个节点(默认情况下,如果我没记错的话) ,该策略是在负责最少分片的节点上启动分片,但其他策略,例如在发送初始消息的节点上启动分片(对于从分区的Kafka主题提取等操作很有用)。>

actor在新节点上开始时,默认情况下,它们不会从先前运行的任何节点上保留其状态。 Akka Persistence提供了允许参与者恢复其状态的能力。这就是为什么在使用Akka群集分片时经常使用Akka Persistence的原因。

启动服务实例不是Akka的责任,而是Kubernetes,Mesos或您要使用的任何控制平面的责任。至于缩小规模,如果集群节点不忙,让它们脱机并不难:尽管您需要自己一些才能实现((可能必须与k8s等进行交互,以防止出现异常)退出被解释为需要生成新实例的失败)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?