课程简介
在PHP或者.NET等服务器语言中,要为每一个客户端连接创建一个新的线程。一个服务器需要同时连接的最大用户数是有限的,要让web应用程序支持更多的用户,就需要增加服务器的数量,使硬件成本显著上升。NodeJs仅仅使用一个线程就可以决绝解决这个问题。当有用户触发一个内部事件,通过非阻塞I/O、事件驱动机制,让Node.js程序并行。使用Node.js,使用与PHP或者.NET等服务器语言相同内存大小的服务器,可以同时处理超过10倍用户的连接,大大降低成本。
本课程从Node基础开始,循序渐进的讲解了使用yeoman开发脚手架工具、服务端渲染SSR方案、Egg中间件的单元测试、异常日志诊断的可视化、BFF等等,详细且全面的介绍了关于node的相关知识和运用技巧。
课程收益
掌握Node的基础知识
了解常用NPM模块、命令行工具以及网络编程
掌握Node BFF—Egg的理论知识,并且进行实战
了解Node与Java的调用、Node BFF与微服务的相关技巧
掌握持续集成、服务端运维、异常排查等等的方法
受众人群
架构师、后端开发工程师、技术部门负责人等等,以及对Node感兴趣的人员。
课程周期
2天
课程大纲
标题 | 授课内容 | 掌握内容 |
一、Node基础(0.5H) | 1. Node.JS介绍&应用场景 2. 线上运行版本推荐 3. npm模块管理系统 | 1. 掌握Node.js的适用范围&优势 2. 如何本地搭建Node环境 3. 如何开发、发布、使用npm模块 |
二、常用NPM模块(1H) | 1. 常用核心包与第三方包 2. 文件(夹)的读写操作 3. 流的读写操作 4. file和stream的区别 | 掌握常用的模块包括fs、path、stream、crypto、node-canvas、nodemailler等 |
三、命令行工具(1H) | yoeman-generator | 掌握如何使用yeoman开发脚手架工具 |
四、网络编程(0.5H) | HTTP/WebSocket | 开发一个简易的web服务 & websocket即时通讯服务 |
五、Node BFF—认识Egg(1H) | 1. 初始化Egg工程 2. 认识Egg中的常见概念 3. 从零开发一个接口和页面 | 学习Egg的工程搭建,认识router(路由)、controller(控制器)、service(服务)、view(视图)、middleware(中间件)、plugin(插件) |
六、Node BFF—Egg实战(2H) | 1. 服务端渲染SSR方案 2. 登录&鉴权&安全 3. 如何开发中间件&插件 4. 常用Egg中间件 | 1. 掌握服务端渲染的两种不同方案: • 模板引擎 (egg-view-nunjucks) • 同构 (egg-view-react-ssr) 2. 学习常用插件的配置和使用:egg-session、egg-security、egg-mysql、egg-oss等 3. 如何开发中间件与插件以及它们的区别(生命周期和执行顺序) 4. 如何使用curl/axios 调用第三方接口(如发送钉钉机器人消息) 5. 学习如何使用nodemailer发送邮件 6. 学习如何开发定时任务(egg-schedux) |
七、调试 & 测试(1H) | 1. 断点调试 2. Egg中间件的单元测试 | 1. 学习如何使用Inspector /vscode launch.json配置调试模式 2. 学习如何使用mocha编写中间件的单元测试用例 |
八、Node与Java(0.5) | node-java 与 node-java-maven | 掌握Node中如何调用Java |
九、Node BFF与微服务(1H) | gRPC 与 sofa-rpc | 1. 了解gRPC 和 sofa-rpc 2. 搭建 sofa-rpc 3. 学习egg-jar2proxy,将jar转义成nodejs可调用的协议 |
十、持续集成(1H) | Jenkins & pm2 | 1. 学习如何使用Jenkins搭建自动化部署 2. 学习如何使用pm2管理Node进程 |
十一、服务端运维(0.5H) | 1. 性能监控&异常监控 2. 常见问题(磁盘溢出、内存泄露、请求波动) 3. devops(重启、置换、切流、清理) | 1. 了解常见的监控指标(CPU、内存、磁盘、应用健康度、qps、rt、slowquery、error top10) 2. 了解常用Linux命令ssh、top、cd、ls、tail、vi、grep,登录服务器查看日志排查异常 3. 故障排查手册 |
十二、异常排查(0.5H) | 异常日志诊断的可视化 | 学习如何使用traceid 和 sls 搭建全流程调用链路日志可视化方案 |
十三、网络架构(0.5H) | 负载均衡 & 分布式 & 应用拆分 | 学习如何使用Nginx + egg 分布式部署,以及按业务域拆分应用 |
十四、BFF的下一站(1H) | 逻辑可视化编排 & 代码热更新 | 学习如何使用VM2搭建简易的代码热更新平台 |