【问题标题】:LAMP vs Compiled Binary [closed]LAMP与编译二进制[关闭]
【发布时间】:2013-01-08 10:05:30
【问题描述】:

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

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

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

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

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

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

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

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

我真的很感激一些想法。

【问题讨论】:

    标签: php api rest architecture realbasic


    【解决方案1】:

    你想要使用 REALbasic HTTP 服务器的唯一方法是作为一个位于 Apache 后面的应用服务器——在一些用 任何语言——所以无论如何你都会有Apache(或Nginx)。

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

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

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

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

    【讨论】:

    • 谢谢你 - 我非常感谢你的时间和意见。
    【解决方案2】:

    如果这是您内部掌握的技能,我会坚持使用 PHP。

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

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

    【讨论】:

    • 在这种情况下:PHP 和 Laravel 或 Node.JS 有什么偏好吗?
    • @user2007960 - 考虑到作为开发人员的选择,我想我会选择 Node.js,因为做最新的事情总是好的。但作为一家公司,我认为我会选择 PHP,因为它已经很成熟,有更多可用的支持结构,并且更容易雇佣有经验的开发人员。
    【解决方案3】:

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

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

    【讨论】:

    • 谢天谢地,我对这两个软件都很了解。 Realbasic 开发人员有一个相当不错的 http 服务器示例,包括我玩过的会话管理——但没有在野外测试过。所以我不知道它可以处理什么容量。我会完全按照你的说法去做。将其创建为控制台应用程序,侦听端口并使用 JSON 响应。你有没有找到任何重要的理由来使用一个而不是另一个。我喜欢听到更多关于创建 RB 服务器界面的经验。谢谢。
    • http 服务器示例,我相信,是 Web 版的基础(从那时起显然增长了很多倍)。您可以使用控制台应用程序执行与使用 Web 版完全相同的操作(有一些 URL 限制)。额外的好处是您可以获得 GUI 网页作为奖励。我们使用 WE 特殊 url 为桌面应用程序制作了一个不错的网上商店界面,但也有一个管理 GUI。最终,该界面可能会被扩展为执行作者类型的 GUI。
    【解决方案4】:

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

    【讨论】:

    • 我不认为 Java 是更好的选择,只是因为资源和应用程序/API 产生的速度。使用过许多 Java Web 应用程序,它们都不是快速...换句话说 - 很多时候我认为网站/Web 应用程序缓慢/滞后并查看浏览器的地址栏,我可以看到 @987654321 @ 或 .jsp 最后...
    • 如果构建正确,Java 比 PHP 更快。但是使用你的技能,APC 会缓存 PHP 生成的字节码。
    【解决方案5】:

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

    Erlang 是电信公司用来运行电话硬件的函数式语言。它具有高度的容错性,并且在我看来,非常具有表现力。它针对并发执行进行了优化,因此您可以轻松享受多线程的所有好处。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-24
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多