3

我真的很感激一些简明的建议。

我即将开始一个项目,我们将在其中维护大量财产数据。

我们打算使用 RESTful 接口构建应用程序,以便各种客户端可以连接。即网络应用程序、iphone 应用程序、第 3 方 api 等。

我们真的希望应用程序/api 快速、响应迅速、可靠。

然而,实际上我们只有一定数量的内部技能,并希望确保我们的思维过程朝着正确的方向前进。

我们的核心知识是 PHP,所以我们最初的想法是一个带有 Memcached 的 LAMP 堆栈(可能用 Postgres 代替 mysql)。我们也可能会使用 Laravel 框架。

但是,我们正在考虑用 RealBasic 编写软件(类似于 VB,但正确的 OOP)并创建字节码。这也将包括 http 服务器 - 与 apache 相比,这一切都简单。

后者是不是矫枉过正?从长远来看,我们是否会变得更加困难,因为我们自己的 http 服务器在速度上可能永远无法与 apache 相提并论。

我真的很感激一些想法。

4

5 回答 5

4

您想要使用 REALbasic HTTP 服务器的唯一方法是作为位于 Apache 后面的应用程序服务器——在一些以任何语言编写的、面向公众的 HTTP 服务器上运行一个面向公众的网站是非常愚蠢的——所以你无论如何,都会有 Apache(或 Nginx)。

REALbasic 可以很好地胜任该角色。它编译为机器语言,而不是字节码,并且您的 HTTP 服务器将构建在其异步单线程服务器套接字框架上,因此性能通常非常出色。

也就是说,我怀疑它是否会比由缓存(Memcached 等)支持的 PHP 性能更好,而且 PHP 是一种比 REALbasic 更成熟的 Web 开发技术,没有任何障碍或限制如果您尝试基于 REALbasic 的解决方案,可能会遇到。

在这种情况下,我会说 PHP 对您来说是更安全、更好的选择。

(警告:我写这个答案是在写一个基于 REALbasic HTTP 服务器的网络应用程序时休息的,开发它只是纯粹的乐趣——REALbasic 是一门可爱的语言。)

于 2013-01-24T20:54:45.477 回答
3

使用 Real Studio 创建 Web 服务器并没有那么疯狂,因为您有很多方法可以实现它,而且您不需要 Apache 或 IIS 来完成它。您可以创建一个控制台应用程序,其唯一目的是为您的应用程序提供 API,或者您可以创建一个也可以提供网页服务的 Web 版应用程序。这真的取决于你想用 web 端完成什么。我们已经为许多客户做了这两件事,而且对他们来说效果很好。

但是,既然你已经熟悉 PHP,我会说坚持你所知道的。学习 Real Studio 并不难,但它仍然是一门新技能,为您(还)不知道的事情提供了所有必要的障碍。

于 2013-01-24T17:23:31.437 回答
3

如果那是您内部拥有的技能,我会坚持使用 PHP。

如果确实需要这种性能,总是可以选择使用 HipHop 编译 PHP 代码。

编写自己的 Web 服务器听起来像是一个疯狂的想法——如果您的系统上有任何单个软件,最好是拥有经过良好测试和安全的东西,那就是 Web 服务器。编写自己的代码不太可能像 Apache 或 nginx 这样的东西执行得一样好,即使你写得尽可能轻量级,而且几乎肯定会有重大的安全漏洞。

于 2013-01-24T15:46:05.430 回答
2

您有充分的理由编写自己的网络服务器吗?如果您不需要 Apache 的所有花里胡哨,也许您可​​以选择更小的东西,例如 nginx。此外,如果您想使用 Linux,我会说 Basic(或任何方言)并不是最好的主意。如果您需要字节码,Java 可能是更好的选择。

于 2013-01-24T15:42:15.717 回答
0

这当然不是你内部技能的一部分,但对于快速、轻量级的 RESTful API,我强烈推荐ErlangCowboy

Erlang 是电信公司用来运行电话硬件的功能语言。它具有高度的容错性,并且在我看来,非常具有表现力。它针对并发执行进行了优化,因此您可以获得多线程的所有好处而不会感到头疼。

Cowboy 是为 erlang 编写的网络服务器。它非常轻量级、高效且易于编码。我使用牛仔为每个数据中心提供大约 25,000 RPS(每台机​​器约 1200 RPS),它从未让我失望。

如果你不打算使用 erlang,你最好使用 apache 或 nginx。如果您没有为它编写自己的 HTTP 服务器(只是处理程序),我只会使用 RealBasic。

于 2013-01-24T21:05:59.260 回答