前端架构为什么推荐用Node做一个中间层

首先跳出前端

要看清node中间层在整个服务承担什么角色,首先我们要跳出前端的视野,把自己视角提示一个level —— 去鸟瞰整个项目。

互联网时代其实就是信息时代,我们都是在利用数据交换,来产生价值。

一个最简单的数据流,前端-->后端-->数据库。

在这个原始的流程之间,我们有很多事情可以做。来看和前端最近这条线,前端-->后端。

  • 代理
  • 缓存
  • 限流
  • 日志
  • 监控
  • 鉴权
  • 路由
  • 灰度
  • ...

上面列出的是一些我们一个服务除了前端的展示,service端的网络服务,API的提供,数据落库等之外也要做的部分事情。在前后端没有分离的时代,这些都是交给后端来做,比如Java,PHP等。尤其在之前,套用模板语言就能解决大部分问题的时候,可以说前端不值得单独拿出来做。但是,当谷歌把JavaScript的宿主环境扩展到浏览器以外时,我们有了更宽泛的选择。

 

前后端分离

前后端分离几乎是现在开发的必选项。我要放弃传统的MVC模式,解除模板语言的限制,独立构建开发环境,SPA页面做SEO,分离部署依赖,统一API出口去适应更好的适应多端等等…….前后端分离的优劣我就不过多赘述。

在前后端分离的前提下,我们就可以在服务器(JAVA)和浏览器(JS)中间架一个中间层(NODEJS).

为什么选择NODEJS做中间层:

  1. 前端熟悉的语言,学习成本极低
  2. 都是JS可以前后端复用
  3. 相似的特性:事件驱动、非阻塞I/O
  4. 执行速度也可接受
  5. 有利于一些SEO的解决方案

 

Node中间层

在前后端分离的天然选择下,node中间层可以承担更多的责任。

  • 代理:在开发环境下,我们可以利用代理来,解决最常见的跨域问题;在线上环境下,我们可以利用代理,转发请求到多个服务端。
  • 缓存:缓存其实是更靠近前端的需求,用户的动作触发数据的更新,node中间层可以直接处理一部分缓存需求。
  • 限流:node中间层,可以针对接口或者路由做响应的限流。
  • 日志:相比其他服务端语言,node中间层的日志记录,能更方便快捷的定位问题(是在浏览器端还是服务端)。
  • 监控:擅长高并发的请求处理,做监控也是合适的选项。
  • 鉴权:有一个中间层去鉴权,也是一种单一职责的实现。
  • 路由:前端更需要掌握页面路由的权限和逻辑。
  • 服务端渲染:node中间层的解决方案更灵活,比如SSR、模板直出、利用一些JS库做预渲染等等。
  • 更多的可能性

 

总结

这些,都是在有个Node中间层的好处,使得服务更加的灵活。当然,Node也有很多弊端,如果设计不好,很容易让代码充满 callback 。CPU使用率较重、IO使用率较轻的应用——如视频编码、人工智能等,Node.js的优势无法发挥(在后面的成熟更新中,Node对这类问题可能也有比较好的解决方案)。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值