后端工程师的思维,让应用能稳定的业务支持,大规模的线上业务;
基于 Node.js 来一步步构建项目,涉及
- RPC 调用
- 系统运维
- 进程管理
- API网关 GateWay
- 用户认证与授权
- 调用链监控-Sleuth
- 服务容错-Sentinel
- 消息驱动-RocketMQ
- 服务发现-Nacos
- websocket
- 基于js的websocket相关api介绍简单实现前后端聊天通信
服务端技术栈
能在生产环境部署一个稳定的 nodejs应用,承载更多的流量
- RESTful API开发
- Graphql
- 数据存储
- egg-sequelize
- MySQL
- Sequelize
- Redis
- SSO登录
- 线上部署
- 日志分析
- log4j
APM监控系统
- graphit & grafana监控 nodejs
- nodejs接入阿里云 nodejs性能平台
- 搭建自己的 apm体系
负载均衡
服务负载均衡
RPC负载均衡
高可用的优雅退出 graceful exit
灰度发布机制,健康检查 health check
pm2实现 nodejs进程管理与优雅退出
自定义中间件
- httpLog(日志)
- userExist(用户是否存在)
- 用户登录验证 (使用 JWT)
- 接口拦截 (egg-auth 插件)
- forbiddenIP 防止爬虫
项目安全
- 防御 XSS (eggJS 自带的 ctx.helper.escape 过滤 html 中的标签)
- 防御 SQL 注入 (egg.validator 验证输入参数类型)
- 防御 CSRF (egg-allowHosts 插件)
- 接口限流 (egg-interfaceLimit 插件)
- 接口缓存 (egg-interfaceCache 插件)
自定义插件
- egg-auth(验证用户)
- egg-info(系统信息)
- egg-notFound(接口不存在)
nodjs性能优化
项目部署
- Docker 容器化
- Nginx 代理
- 阿里云 OSS 存放图片