我是一名 PHP Web 应用程序开发人员,使用 CodeIgniter 使用 PHP 构建了多个大型项目。PHP 一直都能完成这项工作,但现在我正在开发一个新项目,我正在使用客户端的 javascript extjs4 框架构建该项目。我对有经验的 nodejs 开发人员有一些问题。
在我最近的 PHP 项目中,用户登录请求需要我的服务器对 Facebook 进行 API 调用。为了提高可扩展性,我处理这个问题的方式是,我的客户端会发出初始登录请求,服务器会将请求传递给“gearman”作业排队服务器,后台工作进程将获取作业并执行 API 调用。同时,服务器会回复客户端,然后客户端的浏览器将开始使用 AJAX 轮询服务器以查看作业是否已完成。(哦,我通过 memcached 将 Facebook API 调用的结果从 worker 传递到应用程序服务器)。我这样做是为了释放我的应用程序服务器来处理来自用户的更多并发请求,因为 PHP 处于锁定状态并且 Facebook API 调用需要几秒钟。
我的问题是,由于 nodejs 是非锁定的,因此整个应用程序服务器模型、gearman 作业队列服务器和后台工作人员对 nodejs 开发是否有意义?我是否会简单地接受来自客户端的 ajax 请求以登录,从应用程序服务器调用 facebook API 并等待它的响应(同时处理其他用户的请求,因为 nodejs 是非锁定的)然后回复用户?
为了能够利用令人敬畏的heroku环境,我也在考虑进入nodejs开发。