azure - Azure 上的 Akka 发现(使用 VM)

标签 azure akka service-discovery

我有一个在 1+1、1+2、1+3...虚拟机上运行的 Akka 应用程序,Akka 系统正在相互发现。

在AWS上我可以使用https://doc.akka.io/docs/akka-management/current/discovery/aws.html#discovery-method-aws-api-ec2-tag-based-discovery ,这样我就可以根据需要轻松更改 plus 节点的数量。

对于在 Azure 上运行相同的设置,我在列表中看不到任何好的选项: https://doc.akka.io/docs/akka/current/discovery/index.html

您能否建议一种不需要像 Consul 这样的额外托管服务的 Azure 安装解决方案?前往

最佳答案

我确认没有任何东西可以像 AWS 那样用于发现原始 Azure VM。

我的建议是使用基于 Azure 的 Kubernetes 解决方案,例如 ARO 或 AKS。 Kubernetes 也是大多数 Akka 部署的发展方向。发现只是众多功能之一。 (我从未见过 Consul 用于 Akka,确实有一个可用的发现模块,但我估计 2022 年编排平台上 99% 以上的 Akka 都是 Kubernetes。)

但是由于您的问题是如何在没有编排层的情况下做到这一点,因此您可以编写并贡献自己的发现模块,也可以使用种子节点。

  • 对于第一个选项,发现模块实际上并不是非常复杂。他们所做的只是根据您拥有的 API(AWS、Azure、K8S 等)返回尝试连接的 IP/端口列表。这种方法的主要缺点是您将运行一个非常独特的实现。
  • 另一个选项是运行种子节点。为了获得高可用性,我建议运行 2+n,而不是 1+n。只要您有两个稳定的节点,这并不是一个糟糕的选择。当然不如基于 Kubernetes 的解决方案那么动态或强大,但也不可怕。

关于azure - Azure 上的 Akka 发现(使用 VM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72661859/

相关文章:

powershell - Azure Powershell - 检查资源是否存在

scala - Akka Stream Graph 恢复问题

kubernetes - 使用 eureka 与 kubernetes 进行服务发现的缺点

python - Python 中的服务定位协议(protocol) (SLP) 绑定(bind)

azure - 将 Azure VM 转换为云服务

azure - Microsoft 监控代理 (MMA) 和 OMS 代理之间的区别

azure - 交互式集群与 SQL 仓库连接到 Power BI

java - ClassCastException:接口(interface) akka.actor.Scheduler 不能从类 akka.actor.LightArrayRevolverScheduler 分配

scala - Akka 2.1.2 Scheduler有问题(无法识别“系统”)

java - Eureka Client - 无法 Autowiring 客户端(spring 说定义了 2 个 bean)