cloud – 多个节点上的短期Akka部署

我正在使用简单的主和多工作拓扑与Akka编写分布式研究应用程序,目的是部署到内部节点集群或企业云中. (当Akka 2.1可用时,我将研究使用群集支持)

我的问题:
将代码(以包含Akka微内核的文件夹形式)部署到每个节点上的最简单/最好的方法是什么,启动它,让它做它的事情,然后拆除并根据需要重复?

>每个工作节点的微内核目录和可执行文件是相同的,只有几MB. Config包含将连接到的主服务器的IP.
>我打算手动启动主人.
>弹性不是一个问题,因为它不是一个关键业务应用程序,而是一个私有应用程序
研究问题.
>没有重要数据存储在本地工作人员.
>应用程序完成后,我可能想要重新部署不同的应用程序而不会拆除节点(例如,已经改进了代码库).

更新:发现Condor节点支持在整机模式下运行的作业.这应该支持将微内核作为一项工作运行,并且只需要确保工作人员完成后正确退出.

更新2:有人提到Zookeeper可能非常适合这个.非常感谢任何有经验的人的意见.

最佳答案 这是一些想法.我没有Akka的经验,但我确实知道网格计算和部署.

>使用现有的网格工具,例如http://www.gridgain.com(具有GPL版本).我也听说有人用http://www.hazelcast.com/建造一个网格
>使用云端机箱,如机身,http://www.pistoncloud.com/press-releases/piston-cloud-launches-free-openstack-distribution/.我确信必须有其他人.
>我相信Airframe附带Cloud Foundry,但您可以直接使用它:https://micro.cloudfoundry.com/但不确定该版本如何扩展.
>滚动您自己的系统,安装到一个VM映像,然后将其克隆到其他节点上.

当谈到你自己的时候,你可以像下面这样做,这与我已经开发并且运作良好的东西非常相似.

>使用maven构建应用程序,使用您喜欢的库.
>将内置的二进制文件推入Sonatype Nexus.
>构建一个自定义启动器,给定模块的maven坐标可以运行它.我的laucher首先检查当地maven repo的罐子,如果它们不存在,那么它从nexus下载它们.然后它构造传递依赖树中所有jar的类路径.然后它使用新的类路径创建一个新的类加载器,并通过类加载器启动主类.
>使用java-service-wrappe或类似方法编写服务,在启动时通过从配置中读取一些maven坐标和主类的名称来检查要运行的代码的版本. Config可以是网络驱动器上的文件,预配置的URL,甚至是zookeeper.然后它将它传递给下载并运行代码的启动器.
>将此服务安装到许多计算机上,手动或通过克隆虚拟机.
>利润!

我没有特别提到Akka,因为你的大部分问题似乎都是如何让代码在多个节点上运行.

自定义路由对我来说效果很好,但后来我只有一些服务器使用它,所有我正确的网格计算都是在数据突触中完成的.但我确实想知道如果其中一个开源PaaS非常合适,我是否会重新开始.

点赞