0

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

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

选项1:

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

选项 2:

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

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

4

1 回答 1

0

反问:

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

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

短版:选项 1

于 2013-05-03T04:03:48.513 回答