CntChen / cntchen.github.io

CntChen Blog
https://github.com/CntChen/cntchen.github.io/issues
732 stars 64 forks source link

Node.js 应用场景预研 #7

Open CntChen opened 7 years ago

CntChen commented 7 years ago

背景

公司大前端团队准备上 Node 了,激动人心.所以首先需要预研一下 Node 的应用场景和能力范围,探索 Node 生态跟业务需求结合起来的方式.

Node.js

Node 是基于 V8 JavaScript 引擎的 JavaScript 执行器. Node 采用事件驱动和非阻塞 I/O 模型达到轻量和高效,并拥有庞大的模块包生态 -- npm.

技术特点

应用特点

业界观点

应用场景

基本功能: Web 服务器

Node 作为 Web 服务器,连接后台数据库/文件系统,接受网络请求,处理业务逻辑,提供静态资源和业务接口.

前后端分离

概念

在服务器(Java/PHP)与浏览器(JS)的中间架一个 Node 中间层.Node 中间层提供直出,接口转发,静态资源等,属于前端范畴,由前端维护.

特点

注意区分

直出

概念

在前后端接口分离(前后端解耦)情况下,在客户端访问页面时,服务器拉取接口数据,并将数据嵌入页面返回,称为直出.如果返回的是数据和模板,在前端渲染,称为数据直出;如果后端根据数据渲染出页面,直接返回页面,称为页面直出.

直出优点

Node 直出优点

接口聚合

Node 中间层代理后台接口,后台接口提供原子 RESTful 接口,前端根据需要组合使用.Node 调用内部接口使用 HTTPS/RPC 等. 参考: 接口聚合的简单研究

微服务

关注点在于 Node 的开发和部署方式

数据持久化

关注 Node 层数据的落地,作为其他 Node 层功能的基础支撑.

业界实践

阿里

腾讯

百度

美团

其他公司

国外

What companies are using Node.js in production node.js能开发大型网站吗 -- 国外使用情况

我司的实践点

现有条件

为什么是 Node

可实践工程

Node 服务层的能力是非常强大的,结合我司业务,可以实践的工程还是很多的.以下为头脑风暴结果,具体开展需要做可行性分析,需求评审,架构规划,功能划分,开发计划等等工作.

页面配置平台

接口中间层

客户端对接口的访问,先经过 Node 接口中间层,由中间层代理接口服务.

服务端直出

微信商城和 App 的手机专区已经使用了服务端直出,可以保持关注和迭代.

其他场景

技术选型

服务端部署

开发注意点

Node 入门

References

EOF