我真的很感激一些简洁的建议。
我即将开始一个项目,我们将维护大量财产数据。
我们打算使用 RESTful 接口构建应用程序,以便各种客户端可以连接。 即网络应用程序,iPhone应用程序,第三方API等。
我们真的希望应用程序/API 快速、响应迅速、可靠。
然而,实际上,我们只有一定数量的内部技能,并希望确保我们的思维过程朝着正确的方向发展。
我们的核心知识是PHP,所以我们最初的想法是使用Memcached的LAMP堆栈(可能用Postgres替换mysql)。我们也可能会使用Laravel框架。
但是,我们正在考虑用RealBasic编写软件(类似于VB,但适当的OOP)并创建字节码的想法。这也包括http服务器 - 与apache相比,一切都很简单。
后者是不是矫枉过正?从长远来看,我们是否让它变得更难,因为我们自己的http服务器可能永远无法与Apache相比。
我真的很感激一些想法。
你想要使用REALbasic HTTP服务器的唯一方法是作为位于Apache后面的应用程序服务器 - 在一些用任何语言编写的HTTP服务器上运行一个面向公众的网站将是疯狂的愚蠢 - 所以无论如何你都会有Apache(或Nginx)。
REALbasic可以很好地扮演这个角色。它编译为机器语言,而不是字节码,并且您的HTTP服务器将构建在其异步单线程服务器套接字框架上,因此性能通常非常出色。
也就是说,我怀疑它的性能会比缓存(Memcached等)备份的PHP更好,而且PHP是一种比REALbasic更成熟的Web开发技术,没有任何障碍或限制,如果你尝试基于REALbasic的解决方案。
在这种情况下,我会说PHP对您来说更安全,更好的选择。
(警告:我在编写基于 REALbasic HTTP 服务器的 Web 应用程序时写下了这个答案,开发它只是纯粹的乐趣——REALbasic 是一种可爱的语言。
如果这是你内部拥有的技能,我会坚持使用PHP。
总是可以选择使用HipHop编译PHP代码,如果真的需要这种性能。
编写自己的Web服务器听起来像是一个疯狂的想法 - 如果您的系统上有任何单个软件,最好拥有经过良好测试且安全的东西,那就是Web服务器。编写自己的代码不太可能像Apache或nginx那样好,即使你编写的尽可能轻量级,而且几乎可以肯定存在重大的安全漏洞。
使用Real Studio创建Web服务器并不是那么疯狂,因为你有很多方法可以做到这一点,而且你不需要Apache或IIS来做到这一点。 您可以创建控制台应用,其唯一目的是为您的应用提供 API,也可以创建也可以提供网页的 Web 版应用。 这实际上取决于您要通过Web端完成的工作。 我们已经为许多客户做了这两件事,而且对他们来说效果很好。
但是,既然你已经熟悉PHP,我会说坚持你所知道的。 学习Real Studio并不是很难,但它仍然是一项新技能,对于您(还)不知道的事情,所有必要的颠簸。
你有充分的理由编写自己的网络服务器吗?如果你不需要Apache的所有花里胡哨的东西,也许你可以选择更小的东西,例如nginx。另外,如果你想使用Linux,我会说Basic(或任何方言)并不是最好的主意。如果你需要字节码,可能Java会是更好的选择。
这当然不是您内部技能的一部分,但对于快速、轻量级的 RESTful API,我强烈推荐 Erlang 和 Cowboy
。Erlang 是电信公司用来运行电话硬件的函数式语言。它具有很强的容错性,在我看来,非常富有表现力。它针对并发执行进行了优化,因此您可以轻松获得多线程的所有好处。
Cowboy 是一个为 erlang 编写的网络服务器。它非常轻量级、高效且易于编码。我使用 cowboy 为每个数据中心提供大约 25,000 RPS(每台机器 ~1200 RPS),它从未让我失望。
如果你不打算使用erlang,你最好使用apache或nginx。我只会在你不为它编写自己的HTTP服务器(只是处理程序)的情况下使用RealBasic。