NodeJS 学习

node CPU 密集型任务?Libuv?

RPC调用

  • nodejs rpc 协议:https://zhuanlan.zhihu.com/p/38012481
  • grpc 和 rest:https://www.imaginarycloud.com/blog/grpc-vs-rest/
  • RPC 和 http 并不是并列关系,RPC 和 REST 才是并列关系
    • RPC 和 REST 是一种模型,PRC 客户端响应通信模型。REST 基于请求-响应模型
    • RPC 可以基于 http/http2.0/tcp 来实现(grpc根据 http2.0),不仅包含协议内容,也包含序列化/反序列化以及消息通信
    • REST 一般基于 http1.0 实现,当然也可以基于 http2.0 来实现(但是由于请求-响应的模型,导致没办法充分利用 http2.0,比如双向通信)

微服务是什么

  • 微服务和 service mesh:https://zhuanlan.zhihu.com/p/95190522
  • 从 http 接口通信架构(不同服务模块用不同的域名)-> 微服务架构,http 接口通信架构问题:
    • 域名解析与调用链路增加导致的返回事件影响
    • HTTP协议灵活,需要一套更加规范化的传输方式(Restful 风格虽然规定了一些规范,但是针对这些状态码以及url的设计仍会有一些自定义的部分)
    • 性能上,http 1.1 采用的 请求-响应模型,从上面 RPC 调用上来讲,性能不更好(链接复用问题?但是http 1.1 是会有链接复用的,在我看来更多的还是源于 请求-响应模型的局限导致的)

meta framework

目前认知比较粗浅(node和浏览器的差异越来越小,所以前后端一体化?),可以详细看看 nextjs 的实现