Clojure Web(HttpKit、Manifold)与 Elixir/Pheonix
Clojure Web (HttpKit, Manifold) vs Elixir/Pheonix
我目前正在权衡使用 Elixir 与 Clojure 的 运行 Web 服务器来处理许多并发的 Web 套接字连接。现在 Elixir/Phoenix 似乎很适合这个,你会看到基准证明它可以扩展到什么程度(我怀疑这对现实生活中的负载有影响)。但是,我们的大部分基础设施都是用 Clojure 编写的。
在我们的例子中,websocket 处理程序几乎完全独立于现有代码库的其余部分。
所以问题是 - 你会考虑接受另一个 language/ecosystem 因为它更适合特定的工作吗?与使用已经是现有生态系统很大一部分的工具相比。
并且,Elixir/Phoenix 在现实世界负载下显着超过 Clojure/JVM 是否可以证明使用这种任务是合理的?
您可能会发现 this conversation helpful。
综上所述,"speed of your webserver"不会成为你发展的瓶颈。对于几乎任何现代项目,编码、测试、调试、重构和其他与人工相关的任务的重要性要高出 100 倍或 1000 倍。
由于您已经熟悉 Clojure 并将其用于您的大部分项目,我强烈建议您坚持使用它,而不是将您的代码库分成两个不兼容的部分。
我目前正在权衡使用 Elixir 与 Clojure 的 运行 Web 服务器来处理许多并发的 Web 套接字连接。现在 Elixir/Phoenix 似乎很适合这个,你会看到基准证明它可以扩展到什么程度(我怀疑这对现实生活中的负载有影响)。但是,我们的大部分基础设施都是用 Clojure 编写的。
在我们的例子中,websocket 处理程序几乎完全独立于现有代码库的其余部分。
所以问题是 - 你会考虑接受另一个 language/ecosystem 因为它更适合特定的工作吗?与使用已经是现有生态系统很大一部分的工具相比。
并且,Elixir/Phoenix 在现实世界负载下显着超过 Clojure/JVM 是否可以证明使用这种任务是合理的?
您可能会发现 this conversation helpful。
综上所述,"speed of your webserver"不会成为你发展的瓶颈。对于几乎任何现代项目,编码、测试、调试、重构和其他与人工相关的任务的重要性要高出 100 倍或 1000 倍。
由于您已经熟悉 Clojure 并将其用于您的大部分项目,我强烈建议您坚持使用它,而不是将您的代码库分成两个不兼容的部分。