node核心模块中的很多功能都适用于不同的应用场景....自己开发模块的乐趣是了解底层的实现后,可以做出一些很有意思的小东西...这些东西看起来不起眼,但是做着做着没准会越做越大...
所以,细心观察,javascript未来可期.....
- node多进程
node多进程其实是可以做一些多进程任务的,提高任务的执行效率,与此同时的话,可以做一些应用的监控、操作系统的分析、性能分析之类的,多进程主要是fork,各个进程之间可以进行IPC通信,cluster可以实现集群,多个进程同时运行同一套代码(根据Cpu核数),并监控同一个端口,应用更多的是服务器方向
- 进程管理 : 定时任务监控/队列任务监控
- 多任务配合 : 获取服务器信息/调用其他语言模块/执行操作系统命令
- node流
流的话可以用来处理不同类型的数据,例如xls/pdf/mp3/mp4...
- 字节流的切割 : 按行读/过滤特殊字符
- 字节流的合并 : 合并文件/合并数据
- 字节流的转化 : 压缩/解压/转化格式
- node网络模块net
主要可以用来处理一些需要进行分布式操作的应用...建立RPC远程间的通信
- 建立TCP/UDP连接 : 这个基本上不会有直接的应用,因为数据是字节流,还需要自己组装的
- 建立RPC远程连接 : 进行微服务/消息队列服务
- node常规排查的指标
- 查看错误日志,我们的错误日志需要统一的推送到ELK平台
- 找到性能开销大的进程,一般为主进程和队列进程,使用clinic进行生产系统的分析,通过火焰图和堆栈eventLoop分析找到开销较大的函数针对性的进行优化
大量的开辟对象会使得当前进程中的内存上涨,大量的循环、遍历、过滤、排序会让CPU的使用率上涨.....