【问题标题】:Akka cluster running inside cloudfoundry (DEAs) warden containers在 cloudfoundry (DEA) 守望者容器中运行的 Akka 集群
【发布时间】:2015-02-16 21:29:16
【问题描述】:
在当前项目中,我们希望运行 Akka 集群功能的 2.3.4 版本,但出于我的目的,希望在 Java 中执行此操作。困难的部分来自于在 CloudFoundry v2 云 - DEA 守望者容器中运行它的需要。
目前我们正在(单个实例)Akka 上下文 - 没有集群 - 在 Java Web 应用程序中,但我们需要从中逃脱。
我们希望能够扩展正在运行的实例和新实例的数量以加入现有集群。有什么好的方法吗,是否有针对此要求的现有 buildpack?
【问题讨论】:
标签:
akka
cluster-computing
cloud-foundry
buildpack
【解决方案1】:
我对 Akka 不熟悉,但一般来说,“集群”技术在 PaaS 上运行不佳。对于包括 Cloud Foundry 在内的许多 PaaS,您可以部署和“应用”,然后将该应用扩展到多个实例。没有任何内置方法可以让这些通信等,它们都作为独立实例运行。
我从 Akka 文档中看到,您可以列出在不同主机上运行的“种子节点”。所以这将是一个问题;如果期望每个“种子节点”在不同的主机上运行,则您必须为每个“种子节点”创建一个单独的应用程序。
IBM Bluemix 产品中新的基于 Docker 的容器服务可能更适合您尝试做的事情。您可以将您的 Akka 系统构建为一组交互容器。
【解决方案2】:
使用 TCP 路由器的最新 Cloud Foundry 构建将使用标准 Java buildpack 满足这一点。每个 Akka 层都可以公开多个 TCP 端口,这些端口将放置在 TCP 负载均衡器后面。
您可以使用服务发现服务或 Redis 之类的服务,从您的 Akka 代理中查找各种依赖服务。