【问题标题】:Why is Akka good for scaling "up" and "out"?为什么 Akka 有利于“扩大”和“扩大”?
【发布时间】:2014-05-12 16:03:26
【问题描述】:

如果您在 Google 上搜索“Akka 是做什么的”,您得到的典型推销是它可以帮助您的程序“扩大”和/或“扩大”规模。但就像流行词“cloud”无法解释构成云服务的虚拟化技术一样,我认为“纵向扩展/扩展”是同样模糊的流行词,可能不要为 Akka 做任何真正的正义。

假设我有一个包含 100 种不同类型任务的批处理系统。任务 1 - 100 一整天都在开始,做他们的事情,不管他们做什么。 Akka 究竟如何帮助我“扩大”批量系统规模?它如何帮助我的系统“扩展”?

【问题讨论】:

    标签: scala akka scaling


    【解决方案1】:

    它可以“扩展”,因为它允许您设计和组织服务器集群。作为基于消息传递的,它几乎是现实世界的一对一表示(通过网络连接的机器并相互发送消息)。这里没有什么神奇之处,只是框架的范式使您更容易推理您的基础架构。

    它可以“扩大”规模,因为如果您购买更好的硬件,它会透明地利用新添加的内核/CPU,而无需您进行任何更改。

    (说到 Typesafe 堆栈,请习惯这个流行词!:))

    在第一条评论后编辑: 你可以按照你想要的方式组织你的集群:)

    按类型/职责划分似乎是一个不错的选择,是的。您可以让 VM1 与 Task1Actor 实例,VM2 与 Task2Actor 实例,如果您注意到任务 1 是瓶颈,则启动 VM1-bis 以添加更多实例。

    由于 Akka 抽象了发送/接收消息的整个过程,因此您可以在同一台机器上拥有多个 JVM,在同一台物理机器上拥有多个 VM,在多个实际机器上具有多个实际机器,在具有多个 JVM 的多个 VM 上具有多个实际机器。你明白了。

    对于类型安全堆栈:http://typesafe.com/platform

    【讨论】:

    • 感谢@vptheron (+1) - 为您提供了一些后续问题:(1) 您能否举例说明“服务器集群”的含义?这会是一个按类型组织的 Actor 集群,它们都生活在同一个 VM 上吗?例如,您是否会将所有 Task1Actors 放在 1 个 VM 上,然后将所有 Task2Actors 放在不同的 VM 上? (2) 什么是“类型安全”堆栈?再次感谢!
    • 再次感谢@vptheron(再次+1)。嗯,我想我要开始从这里的树林中看到森林了。那么我可以使用 Akka 在 VM #2、#4 和 #5 上部署 100K Task1Actors 吗?然后在 VM #1 和 #3 上部署 500K Task2Actorss?
    • @IAmYourFaja,是的,如果你愿意,你可以。这些参与者将能够以绝对透明的方式进行交流。当然,这样做的必要性取决于实际情况。
    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 2010-12-12
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多