构建云的Erlang应用程序

the*_*onk 11 cloud erlang distributed amazon-ec2 amazon-web-services

我正在开发一个将部署到AWS的套接字服务器,到目前为止,我们已经按照与Erlang in Practice中的示例项目类似的结构设置了基本的OTP应用程序,但我们希望避免使用全局消息路由器,因为这不会很好地扩展.

通过分布式应用程序的OTP设计指南以及" 了解你一些Erlang"中的相应章节(Distribunomicon分布式OTP),看来内置的分布式应用程序机制适用于已知主机名和IP的内部部署解决方案.群集配置是提前确定的,而在我们预期的设置中,应用程序需要动态地上下扩展,并且节点的IP地址将是随机的.

对不起,这是一个冗长的构建,我的问题是,是否有部署到云的分布式Erlang应用程序的设计指南,需要处理所有动态扩展?

谢谢,

I G*_*ICE 6

有几种可能的方法:

  • 在Erlang和OTP in Action中,提出的一种方法是使用一个或两个具有已知域或IP的中心节点,并让所有其他节点连接到此节点以发现彼此
  • https://github.com/heroku/redgrid/tree/logplex等应用程序需要一个中央redis节点,所有Erlang节点都会自行注册,并进行成员资格管理
  • 像Zookeeper这样的第三方服务以及类似的东西
  • 无论人们推荐什么

请注意,除非您需要通过切换分发协议以使用SSL,或者使用AWS安全组以及限制谁可以访问您的网络来保护您的通信.


小智 2

我刚刚学习 Erlang,所以无法提供我自己的任何实用建议,但听起来您的情况可能需要“资源发现”类型的方法,正如我在 Erlang & OTP in Action 中读到的那样。

Erlware 还有一个应用程序可以帮助解决此问题:https://github.com/erlware/resource_discovery