16

我正在考虑将 Erlang 作为我即将进行的项目的潜力。我需要一个“高度可扩展、高度可靠”(呃,什么项目没有?)网络服务器来接受 HTTP 请求,但不能真正提供 HTML。我们有数以千计的分布式客户端(其他系统,而不是用户)将二进制数据提交到中央服务器集群以进行离线处理。响应将非常短,成功、失败、错误代码、最少数据。我们想使用 HTTP,因为它是我们穿越防火墙的最佳机会。

鉴于项目信息有限,您能否提供使用 Erlang 之类的技术可能出现的任何弱点?例如,我了解 Erlang 的文本处理能力可能会有所不足。

您的意见表示赞赏。谢谢。

4

5 回答 5

10

这听起来像是 Erlang 这样的语言的完美候选者。该语言的缩放属性非常好,但如果您担心数据处理能力,您不应该担心。它是一种非常强大的语言,有许多可供开发人员使用的库。这是一门古老的语言,过去曾被大量使用/测试过,所以你想做的一切可能已经在某种程度上完成了。

于 2009-03-05T15:31:15.983 回答
5

确保您使用 erlang 版本 R11B5 或更高版本!早期版本的 erlang 不提供超时 tcp 发送的能力。这导致停滞或恶意客户端能够通过拒绝接收您发送的数据来对您的应用程序执行 DoS 攻击,从而锁定发送过程。

请参阅R11B5 发行说明中的​​问题 OTP-6684 。

于 2009-03-05T17:41:06.747 回答
5

使用 Erlang,可扩展性和可靠性是存在的,但是从您的项目定义中,您不会概述您将需要哪种类型的文本处理。

我认为 Erlang 的主要限制可能是在您所在地区寻找有经验的开发人员。对 Erlang 架构师和编码员的可用性进行一些研究。

If you are going to teach yourself or have your developers learn it on the job keep in mind that it is a very different way of coding and that while the core documentation is good a lot of people do wish there were more examples. Of course the very active community easily makes up for that.

于 2009-03-08T13:12:47.473 回答
3

我了解 Erlang 的文本处理能力可能会有所不足。

Starling项目已经提供了基本的unicode 支持,目前有一个 EEP(Erlang Enhancement Proposal)正在草案中,但正在将其纳入 Erlang/OTP 支持的主流。

于 2009-03-06T12:19:09.213 回答
1

I encountered some problems with Redis read performance from Erlang. Here is my question. I tend to think the reason is Erlang-written module, which has troubles while processing tons of strings during communication with Redis.

于 2014-03-22T13:29:40.447 回答