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 服务是怎么部署的?
5.2 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 是如何调试的?
Node.js inspect ChromeDevtools 调试 Node.js 服务