【发布时间】:2017-02-25 09:55:37
【问题描述】:
-- 背景
我正在努力用 Elixir 替换我们当前 Rails REST API 的一些端点。我开始爱上了 Umbrella 的想法,它包含一个 HTTP 端点(一个 Phoenix 应用程序)和一组小型 nano 应用程序;可以是完全负责与用户数据交互的用户应用。
-- 问题
现在我希望能够独立扩展这些服务,比如用户服务的负载是否更大。我们在当前设置中使用 Docker,因此理想情况下我会部署更多用户应用容器。
这意味着我需要某种沟通方式,我目前使用 GenServer 创建了一个概念证明,效果很好,但似乎围绕着传递和改变状态的想法。而我只想传递一些数据,或者如果操作成功则回复:ok。 我看了http://elixir-lang.org/getting-started/mix-otp/task-and-gen-tcp.html,对我应该使用什么进行交流感到困惑。 那么我的第一个问题是,我的应用之间最理想的通信方式是什么?
我还偶然发现了另一个痛苦,在开发过程中我仍然需要我的应用程序一起交流,但这意味着我需要独立启动每个应用程序,并传递一个--cookie 和一个--sname。现在这很好,因为我只有 3 个应用程序,但是当我有 10 个时,这是很多工作。我知道我从伞根开始整个项目,但是,我如何将所需的参数传递给个人应用程序?
非常感谢一些许可。谢谢。
【问题讨论】:
-
我不完全明白为什么“这意味着我需要某种沟通”,但只要你坚持 Erlang/Elixir 生态系统,elixir-lang.org/getting-started/mix-otp/… 可能更适合你想。参数传递,嗯,有更多方法可以给猫换皮——例如,您可以以编程方式启动分发系统,而不是为您完成它,请参阅erlang.org/doc/man/net_kernel.html。我觉得你的问题有点笼统,无法保证准确的答案。
标签: elixir