f# - SUAVE 产品是否准备好用于具有数百万用户流量的 Web 应用程序开发?

标签 f# suave

我们是一家初创公司,目前正处于将 SUAVE 与 F# 用作 Web 应用程序开发框架的评估模式。我非常热衷于使用 SUAVE 框架来开发我的应用程序。
我只想知道 SUAVE 是否已做好生产准备,与并发用户的 OWIN 相比,是否对其进行了任何性能基准测试,以及 Web 服务器可以处理多少用户流量。

最佳答案

尽管这个线程现在已有 8 个月大,但我想分享我使用 Suave 作为 Web 服务器的经验。

首先,基于简单的基准测试性能无法告诉您更复杂系统整体性能的真相。
但是,在使用 Suave 时,它​​不太可能成为您应用程序中的瓶颈。
它更多地取决于整个架构、请求和响应之间的机制总和以及实现细节(例如,列表上的随机访问相当慢)。

我现在在 3 个项目中使用了 Suave,总是取得了巨大的成功。
他们都大量使用并行化和多线程。
其中两个直接由 Suave 在 Nginx 代理后面直接运行,一个使用 IIS。
在 IIS 下运行对性能没有任何可测量的影响。
当我遇到任何性能问题时,Suave 从来都不是寻找它们的地方。

当利用 F# 出色的并发和并行化功能时,您的应用程序将受益于垂直扩展。
例如,我构建了一个图像处理服务,它在 AWS 上的表现相当糟糕,但在配备四核奔腾处理器的笔记本电脑上却表现出色。
但同样,这与 Suave 无关。
实际上,它几乎不适合您。

Suave 本身就是一个伟大而可靠的选择。在大约 2 年的时间里,我没有遇到过 Suave 会导致麻烦的边缘情况。

我不得不提一下,我的经验是基于简单的 Web 服务器和服务。
Suave 用于相当平坦的 Web 层,以提供 RPC 或 REST-API。
其他任务,如流媒体或软实时应用程序可能需要另一种方法,并且可能不太适合 Suave。

关于f# - SUAVE 产品是否准备好用于具有数百万用户流量的 Web 应用程序开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43339902/

相关文章:

events - 如何弱订阅事件/可观察量

xaml - FsXaml 可以在 F# 解释脚本中使用吗?

f# - 使用组合器清理 Suave.io 中的 mapJsonAsync

f# - 有没有办法将图像直接通过管道传输到温和的响应流?

c# - 并行执行网络服务调用

F# 交互式在 PCLStorage 中抛出 NotImplementedException

haskell - 将两个(或多个)选项值应用于 F# 中的函数的正确方法

f# - Suave - 控制何时响应为 'cached' 或重新计算

.net - 如何在 F# Suave 中路由/商店/类别/%s/品牌/%s?

visual-studio - 为什么我不能让 Suave 在 VS 2017 上工作?