我希望在 OCaml 中编写一个 Web 服务服务器(使用 http 协议)。
举个简单的例子,我想写一个http server
. 用户可以访问它并提供像http://myservice.com?i=1&j=2
. 然后我的服务器获取请求和参数calculate i+j
并返回结果。
当然,我的服务对于计算部分会比较复杂。而不是这个简单的计算示例,我真正需要做的是
- 访问数据库(MongoDB)以获取一些数据
- 访问另一个 3rd 方网络服务以获取更多数据
- 计算所有数据得到结果并返回给用户。
所以,我也需要考虑parallelism
/ multi-threading
,虽然我想先从简单的案例开始。
我的问题是:
- 我应该使用哪个库来首先设置这样一个
http server
?我研究过Ocamlnet 3并认为它可能是一个很好的候选者,但它缺乏好的教程,我仍然不知道如何使用nethttpd
等等netplex
。 - 我应该如何设计我的 Web 应用程序的架构?我知道 OCaml 不擅长
parallelism
,那我怎样才能让每个服务实例不阻塞呢?