【问题标题】:Using node with MySql OR using node with PHP (which will handle the MySql operations)使用带有 MySql 的节点或使用带有 PHP 的节点(它将处理 MySql 操作)
【发布时间】:2013-05-03 01:48:27
【问题描述】:

我有一个 node.js 服务器,它为客户端浏览器提供交互式 HTML 页面。所以在这种情况下,客户端前端页面不是从 Apache 服务器提供的,而是从 node.js 服务器提供的。

当用户执行某些操作(即创建墙帖或评论)时,我正在考虑使用一种可能的操作流程来管理它们,但我不知道哪个更好(在性能、可扩展性方面对于大量用户,并且易于实施)。 所以这些是我的选择:

选项 1:

  • Socket.io 会将消息详细信息发送到节点服务器(监听特定端口)。消息将使用 JSON 编码。
  • 节点收到消息。
  • 节点将直接与 mysql 数据库通信。在此步骤执行输入清理。
  • 节点将详细信息广播给在同一 socket.io 房间内订阅的其他用户。

选项 2:

  • Socket.io 会将详细信息发送到节点服务器。消息将使用 JSON 编码。
  • 节点收到消息。
  • 节点使用 HTTP POST 调用 PHP。然后 PHP 控制器将处理 HTTP POST 消息并将所有相应的详细信息保存到 mysql 数据库中。将在此步骤执行输入清理。
  • PHP 将通过 redis 通知 node.js 服务器,假设使用名为“mysqldb”的通道。
  • 节点会订阅“mysqldb”频道,然后会将相应的详细信息广播给同一个socket.io房间内订阅的用户。

您能告诉我上述两种方法的优缺点吗?有没有更好的办法?

【问题讨论】:

    标签: php mysql node.js redis socket.io


    【解决方案1】:

    反问:

    • 每个选项中的相同操作需要多少个步骤才能完成所有操作?
    • 想想每个选项可能出错/失败/中断的所有事情?
    • 如果所有内容都用一种语言编写会容易得多?
    • node、PHP、MySQL、redis之间不传数据能节省多少时间?
    • 您必须为每个选项安装和配置多少个软件包?

    除非您有非常非常具体的原因将 PHP 插入功能齐全的软件堆栈,并且实际上不知道为什么会问这个问题。

    短版:选项 1

    【讨论】:

      猜你喜欢
      • 2014-06-07
      • 2022-01-22
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 2018-03-01
      • 2016-06-28
      相关资源
      最近更新 更多