跳到主要内容

Node

2024年03月05日
柏拉文
越努力,越幸运

一、V8


1.1 V8 垃圾回收机制?

1.2 如何查看V8的内存使用情况?

1.3 哪些情况会造成 V8 无法立即回收内存?

1.4 V8的内存限制是多少,为什么V8这样设计?

二、进程


2.1 进程的调度方式

2.2 说一下你对进程和线程的了解?

2.3 请简述一下 Node 的多进程架构?

2.4 Node 中进程间是如何进行通信的?

2.5 如何实现进程间的状态共享,或者数据共享?

2.6 请问创建子进程的方法有哪些, 简单说一下它们的区别?

2.7 请问实现一个 Node 子进程被杀死,然后自动重启代码的思路?

2.8 实现限量重启, 比如我最多让其在1分钟内重启5次, 超过了就报警给运维?

2.9 了解 Node.js 中的 Cluster 吗?如何使用的?解决了什么问题?什么场景下使用呢?

2.10 请问你知道 spawn 在创建子进程的时候,第三个参数有一个 stdio 选项吗,这个选项的作用是什么,默认的值是什么?

三、内存


3.1 什么是内存泄漏?

3.2 常见的内存泄漏有哪些?

3.3 内存泄漏是如何排查的?

四、模块


4.1 模块化开发怎么做?

4.2 谈谈你对 AMD、CMD 的理解?

4.3 请介绍一下 Node 里的模块是什么?

4.4 请介绍一下 require 的模块加载机制?

4.5 说下 Node 中 require 模块引入的查找方式?

4.6 Common.js 和 EsModule 中模块引入的区别?

4.7 我们知道 Node 导出模块有两种方式, 一种是 exports.xxx=xxx 和 Module.exports= 有什么区别吗?

4.8 加载模块时,为什么每个模块都有__dirname,__filename属性呢,new Module的时候我们看到1.1部分没有这两个属性的,那么这两个属性是从哪里来的?

五、服务


5.1 Node.js 服务是怎么部署的?

PM2 Node.js 服务部署

Kubernetes Node.js 服务部署

5.2 Node.js 服务监控是如何做的?

Node.js 服务监控指标、监控工具、具体实现

5.3 Node.js 服务日志是如何治理的?

Node.js 服务端 Loki + Promtail + Grafana

Node.js 服务端 Elasticsearch + Fluentd +Kibana

5.4 Node.js 服务是如何保证稳定性的?

5.5 Node.js 做过哪些工作?做过哪些性能优化?

六、调试


6.1 Node 是如何调试的?

VsCode 调试 Node.js 服务

Node.js inspect ChromeDevtools 调试 Node.js 服务

七、API


7.1 EventEmitter 是什么? 可以手写实现吗?

八、NPM


8.1 npm run xxx 工作流

8.1 npm install xxx 工作流

九、KOA


9.1 Koa 尾调用优化

9.2 Koa 洋葱模型模拟实现

9.3 中间件中, 异常处理是怎么做的?

9.4 body-parser 中间件有了解过吗?

9.5 如果没有 async/await , Koa 如何实现洋葱模型?

十、JWT


10.1 Session 和 JWT 哪个更好?

10.2 HTTP请求中token和cookie有什么区别-token和JWT

10.3 HTTP请求中token和cookie有什么区别-cookie和session

十一、脚手架


11.1 脚手架中,命令如何解析?

11.2 脚手架中,可以实现命令行解析器吗?

11.3 脚手架中,如果参数里面右括号的话,怎么判断括号合法性?

11.4 脚手架中,如果命令冲突或者参数是另一个命令的情况,怎么解决?

十二、Redis


12.1 Redis 集群

12.2 Redis 哨兵机制?

12.3 Redis 主从复制?

12.4 Redis 为什么巨快?

12.5 有一个IP地址库,假设有几十万条ip,如何判断某个ip地址是否在这个库中?

十三、Kafka


十四、MySQL


十五、Buffer


15.1 Buffer乱码问题?

15.2 Buffer的内存分配机制?

15.3 新建Buffer会占用V8分配的内存吗?

15.4 Buffer.alloc和Buffer.allocUnsafe的区别?

十六、异步I/O


16.1 请描述一下整个异步 I/O 的流程?

16.2 请介绍一下 Node 事件循环的流程?

16.3 浏览器的 Js 循环机制和 Node.js 循环机制的差别?

16.4 在每个 Tick 的过程中, 如何判断是否有事件需要处理呢?

十七、MongoDB


17.1 MongoDB 索引?

17.2 MongoDB 复制?

17.3 MongoDB 聚合管道优化?

17.4 数据库中的索引,用 b+ 树做索引有什么好处

十八、Nest.js